ショップ宛の注文メールが届かない!トラブルの原因はDMARCでした

ショッピングカートで注文を受けた際に、お客様には自動配信メールが届いているのに、お店にはメールが届かないというトラブルが発生しました。

受注用のメールが受信できない!

カートシステムをプログラミングする際、ショップ宛に送信するメールの Fromにお客様のメールアドレスを設定して送信していました。
こうしておくと、注文メールに返信すれば、お客様にメールを送信できるので便利なのです。

しかしある日、こんなトラブルに遭遇しました。

お客様には自動送信メールが届いているのに、ショップには注文メールが届かない

サーバのログには確かにショップ宛にメールを送信した履歴があるのに、なぜか受信トレイに届きません。迷惑メールボックスにも見つかりません。そのメールだけが忽然と消えてしまったのです。

なぜか、「yahoo.com」というドメインのメールアドレスを使っているお客様に、不具合が発生するようなのです。

サーバに残されたメール送信ログを丹念に調べてみたところ、こんなメッセージが見つかりました。

yahoo.com から認証されていないドメインがどーのこーの…英語ワカラナイ

しかし、ネットショップのサーバから、自店のメールアドレス宛に送信したわけですから、「yahoo.com」のメールサーバは無関係のはず。

なんで?

混乱しつつこのメッセージを再度眺めていると、このメッセージは「ASPMX.L.GOOGLE.COM」から発せられたものであることに気付きます。

実はそのショップのメールは、Google Appsで運用しています。

つまりはこんな状況のようです。

ネットショップのサーバから Google Apps のメールアドレス宛に送信したものの、Google Apps 側で受信を拒否している

ネットショップのサーバから、Google Apps で運用しているメールアドレス宛にメールが送信されたものの、Google Apps がそのメールの受信を拒否したようなのです。

いろいろ調べてみたところ、「DMARC」というやつが原因のようです。
ざっくり要約すると、「DMARC」とはこんな取組みのようです。

DMARCとは、「SPFとDKIMのどちらの認証にも失敗した場合に、受信サーバはどうすべきか」について、ドメイン所有者がポリシーを発行し、DMARCに参加するメールプロバイダがそれに従って処理を行う取り組み。

今回の例をあてはめて説明するとこんな感じになります。

yahoo.com が DMARC に参加し「yahoo.comのメールを受信したとき、もしもそのメールがyahoo.com以外のサーバから送信されたものであったなら、そのメールの受信を拒否してね」とポリシーを発行していて、同じく DMARC に参加する Google は、そのポリシーに従って、該当するメールの受信を拒否したということです。

要は、本人が送った覚えのないメールは受信を拒否しようね、という「なりすましメールを防止する活動」ということですね。
(※該当するメールをどうするか(拒否とか破棄とか)は、発行されたポリシーによって様々です)

そういえば過去にも同じようなことが1回あったな~と思い出しまして調べ直してみると、そのときは「aol.com」というドメインだったのですが、やはり AOL も DMARC に参加しており「拒否してくれ」というポリシーを発行しているようです。

その他にも PayPal や eBay なども DMARC に参加しているみたいですね。

なるほど、そんな取り組みがあるとは知りませんでした。

SPFレコードの追加と同じく、DNSにDMARCの設定を記述したTXTレコードを追加することで、DMARCを有効にできるみたいですね。

対策: From がダメなら Reply-To を使えばいいじゃない

そういうことならば、From には 自社ドメインのメールアドレスを指定し、Reply-To にお客様のメールアドレスを入れて送信すればOKってことですね。

そんなわけで、スクリプトからメールを送信するプログラムについて、該当部分の書き換え作業を行った次第です。

最近国内でも、DMARCに参加すると発表したメールプロバイダがいくつかあるようです。まだ他では聞いたことがない事例なのですが、DMARC に参加するメールプロバイダが増えるにつれ、「注文受付のメールが届いてるのに、商品が届かないんですけどー(怒)」というお客様からのクレームがじわじわと増えそうな気がします。

スポンサーリンク
広告(大)
広告(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告(大)