メールが受信できないのは、さくらのせいじゃなかった

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が動作しているサーバーへのドメイン移行が完了すれば、問題が解決するということがわかり、一安心です。 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です