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

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八王子など登壇多数

ご質問・ご相談などありましたら
お気軽にお問い合わせください


コメントを残す

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

Vektor Passport(ライセンス期間1年)
VK Filter Search Pro
Vektor WordPress Solutions
PAGE TOP