Magentoで制作したECサイトをテストしていたとき、クライアントの担当者に「受注通知メール」が届かないという問題が発生しました。
通常は、買い物を完了すると、購入者とMagentoの管理画面で設定した担当者宛にメールが届きます。
クライアントのテスト前に私が買い物をしたときは、購入者・担当者ともにメールが送信されてきたので、システム自体は動いていると思われます。
まずは、状況の確認
担当者にメールが届く場合
- ゲストで購入、メールアドレスは「アットニフティ」のものを使用 → 購入者にメールが届く
- メンバー登録して購入、メールアドレスは「Hotmail」のものを使用 → 購入者にメールが届く
- 担当者のメールアドレスは「GMail」のものを使用 → 担当者にメールが届く
- メールクライアントは使用せず、すべてウェブブラウザを使用
担当者にメールが届かない場合
- メンバー登録して購入、メールアドレスは「さくらインターネット」上の独自ドメインのものを使用 → 購入者にメールが届かない
(会社から割り当てられている個人用メールアドレス) - ゲストで購入、メールアドレスは「Hotmail」のものを使用 → 購入者にメールが届く
- 担当者のメールアドレスは「さくらインターネット」上の独自ドメインのものを使用 → 担当者にメールが届かない
(会社の営業用メールアドレスで、購入者と同じドメイン) - メールクライアントは、「Microsoft Outlook 2007」
HTMLメールが原因か?
まず疑われるのは、メールクライアントおよびメールサーバーのセキュリティ設定です。
Magentoから送信されるメールはHTMLメールなので、迷惑メールとして処理されている可能性があります。
ちょうど打ち合わせがありましたので、クライアントの事務所に伺って、設定を確認させていただきました。
メールサーバーは、ウィルスチェックを行わない設定になっています。
Outlookは、常識的な設定になっており、特にHTMLメールを弾くようにはなっていません。
ここで試しに、Hotmailで受信した私宛の受注確認メールを転送してみました。
すると、問題なく受信できます。
メールの内容自体が問題ではないようです。
送信側のメールサーバーが問題か?
ここで私はふと思い当たることがありました。
現状のサーバー構成についてです。
クライアントは現在、「さくらインターネット」でWebサーバーおよびメールサーバーを運用しているのですが、さくらのレンタルサーバーでは、Magentoの動作環境を満たさない(MySQLでInnoDBが使えない)ため、 他のレンタルサーバーへ乗り換えることになっていました。
現在Magentoが動作しているサーバーは正式運用前なので、ネームサーバーの設定はされておらず、DNSの逆引きができません。
そのため、さくらのメールサーバーが拒否しているのではないかと考えました。
そこで確認のため、知り合いでさくらのメールサーバーを使用している方にお願いして、買い物をしてもらいました。
ところが・・・なんと、ちゃんと受注確認メールが届いてしまったのです。
許可を得て、コントロールパネルからメールのセキュリティ設定を確認させてもらいましたが、クライアントの設定と全く同じ。
元々、そんなに設定項目はないので、設定ミスのしようもありません。
・・・困りました。
さくらのサポートに相談
手詰まりになってきたので、さくらのサポートに相談をしてみました。
サポートからほどなく連絡があり、サーバーの履歴を確認してみるので、メールが送信された詳細の日時と送信したメールの内容を教えてほしいと言われました。
その後の調査の結果、「さくらには、そのメールが届いた形跡がない」という返事が返ってきました。
??? 狐につつまれたような感じです。
ただ、消去法で問題のありかはわかってきました。
「Magentoから、クライアントのドメイン宛にだけ、メールが送信されていない」ということです。
MagentoのSMTP設定を変える
原因がよくわからないので、とにかく試行錯誤をしてみることにしました。
うまく行ったら、そこから逆に原因を探してみようという考えです。
まずは、SMTP設定を変更できるエクステンション「SMTP Pro」を導入してみました。
Magentoが使用する送信メールサーバーを、動作中のサーバー以外の任意のサーバーに指定できるエクステンションです。
これを使って他のメールサーバーからメールを送信し、問題がMagentoにあるのかメールサーバーにあるのかを切り分けます。
SMTP Pro を導入すると、管理画面の「システム-設定-高度な設定-システム」に、4つの新しい項目が現れます。
まず「SMTP Pro Email General Settings」 でエクステンションを有効にします。
今回は一般のレンタルサーバーのメールサーバーを使いますので、「Choose extension option」を「SMTP」にします。
次に「SMTP Pro Email SMTP Settings」 でメールサーバーの設定をします。
「Authentication」は「ログイン」
他の設定は、通常メールクライアントに設定するものと同じです。
この設定で買い物を行ったところ、クライアント担当者で問題なく受注確認メールが受信できました。
となると、問題はいったいなんだったのでしょうか?
原因はメールサーバーの高度な動き
メールサーバーの詳細な設定は、一般ユーザーにはわかりません。
そこで、Magentoが動作しているサーバーの担当者に聞いてみました。
その結果、私は、最近のメールサーバーの高度な動作を知ったのでした。
Magentoが動作しているサーバーは、テスト完了後に本番サーバーとして運用を行い、独自ドメインも、さくらから新しいサーバーへ移行する予定です。
そのため、ユーザー名やドメイン設定は、本番運用予定のものが設定してあります。
つまり、現在、さくらで運用中のものと同じドメインが設定されていたのです。
今回、クライアント担当者にメールが送信されなかったのは、Magentoが動作しているサーバーに設定されているドメインと同じドメイン宛のメールであったために、サーバーが内部処理でメールを受信箱に移動させ、外部に送信していなかったということなのです。
ということは、メールサーバーの動作確認のために、自分宛にメールを送るという操作は、あんまり意味がないということなのですね。
単にメールサーバーの内部処理テストを行っているだけだということですか・・・
すみません、私が無知でした。
というわけで、Magentoが動作しているサーバーへのドメイン移行が完了すれば、問題が解決するということがわかり、一安心です。
この記事を書いた人
-
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き
1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数
最新の投稿
ご質問・ご相談などありましたら
お気軽にお問い合わせください
資料請求・お問い合わせにはメールアドレスが必要です
コメントを残す