ショップ宛の注文メールが届かない!トラブルの原因はDMARCでした橋本技研ブログ売れるホームページ研究所、橋本技研の技術系備忘録ブログ。ショッピングカートシステムの制作などが得意です。ネットショップのプログラミングショッピングカートで注文を受けた際に、お客様には自動配信メールが届いているのに、お店にはメールが届かないというトラブルが発生しました。Fromにお客様のメールアドレスを設定していました。しておくことで、受信した注文メールに返信すれば、お客様にメールを送信できるため便利だからです。ある日、こんなトラブルに遭遇しました。お客様には自動送信メールが届いているのに、ショップには注文メールが届かないサーバのログには確かにショップ宛にメールを送信した履歴があるのに、なぜか受信トレイに届きません。迷惑メールボックスにも見つかりません。そのメールだけが忽然と消えてしまいました。「yahoo.com」というドメインのメールアドレスを使っているお客様に、不具合が発生することに気付きました。サーバに残されたメール送信ログを丹念に調べてみたところ、こんなメッセージが見つかりました。認証されていないドメインがどーのこーの...しかし、ネットショップのサーバから、自店のメールアドレス宛に送信したわけですから、「yahoo.com」のメールサーバは無関係のはず...。?混乱しつつ、このメッセージを再度眺めていると、このメッセージは「ASPMX.L.GOOGLE.COM」から発せられたものであることに気付きます。yahoo.comからではなく、Gmailのサーバからのメッセージです。要はGmail)で運用しています。ここで、やっと原因が見えてきました。こんな状況のようです。そのメールの受信を拒否したようなのです。調べてみたところ、「DMARC」という仕組みが原因のようです。要約すると、「DMARC」とはこんな取組みのようです。DMARCとは、「SPFとDKIMのどちらの認証にも失敗した場合に、受信サーバはどうすべきか」について、ドメイン所有者がポリシーを発行し、DMARCに参加するメールプロバイダがそれに従って処理を行う取り組み。今回の例をあてはめて説明するとこんな感じになります。そのポリシーに従って、該当するメールの受信を拒否したということです。要は、本人が送った覚えのないメールは受信を拒否しようね、という「なりすましメールを防止する活動」ということですね。参加しており「拒否してくれ」というポリシーを発行しているようです。参加しているみたいですね。そんな取り組みがあるとは知りませんでした。SPFレコードの追加と同じように、DNSにDMARCの設定を記述したTXTレコードを追加することで、DMARCを有効にできるみたいですね。お客様のメールアドレスを入れて送信すれば、良いということになります。ほとんどのメールアプリケーションは、メールを返信する際、通常はFromのメールアドレスに返信するのですが、Reply-Toヘッダにメールアドレスが指定されている場合は、そちら宛に返信するというルールがありますので、それを利用するのです。そんなわけで、スクリプトからメールを送信するプログラムについて、該当部分の書き換え作業を行った次第です。最近国内でも、DMARCに参加すると発表したメールプロバイダがいくつかあるようです。参加するメールプロバイダが増えるにつれ、「注文受付のメールが届いてるのに、商品が届かないんですけどー(怒)」というお客様からのクレームがじわじわと増えそうな気がします。この問題が厄介なのは、お客様のメールアドレスによって、届いたり届かなかったりする点です。ホームページ制作会社が作ってテストしたときは問題なかったのに、いざ運用を開始したら時々発生するというパターンなので、インフラ周りの知識までないと、原因の特定が難しいかも知れませんね。同様にWordPressに設置されたフォームなんかも。この問題でメールが届かない事例が増えそうです。この問題に対応したプラグインもまだ見当たらないようですので、しばらくは自分でスクリプトを組むことになりそうです。bagooon橋本たかし★ホームページの制作(デザイン・コーディング・プログラミング)に加え、ネットショップの販売促進に関するアドバイスも致します。20年以上に渡って実際にネットショップを運営した経験を生かし、聞きかじりではない実績を伴ったノウハウを、自分の言葉でお伝えいたします。プログラミングの経験は30年以上。PHP、Ruby、Perl、JavaScript、Vue、Nuxt.JS、MySQL、Elasticsearch、サーバー構築、Dockerなど、幅広く対応します。瞬時に検索できるようになった。改元アニバーサリーの10連休中に、いつか勉強してみたいと思っていた、検索専用DBについて調べて、いろいろ遊んでみました。僕が独立す...記事を読む楽天ウェブサービスAPIを使って、ふんどし専門店を作ってみたよ先日、友人と話していたら、「楽天の商品を自動的に検索してサイトで紹介する方法ってないかな?」と聞かれたので、ちょっと調べてみました。...記事を読むベジェ曲線について勉強してみました。画像を扱うプログラムを書いているのですが、文字を曲線に沿って配置したいな~なんて思いまして、曲線について勉強しております。パソコンで曲線...記事を読むユーザー認証パッケージSentinelを複数サブドメインで使用する会員制サイトを製作するにあたり、ユーザー認証システムとして「Sentinel」というフリーミアムライセンスのライブラリを使用することにしまし...記事を読む運営するネットショップで、200か所以上に発送する案件を頂いたので、受付作業を自動化してみた話。運営しているネットショップにおいて、200か所越えの宛先に商品を発送する案件を頂きました。配送先の情報については、すでにエクセルデー...記事を読むPHPから出力したHTMLから、javascriptにデータ(連想配列)を引き渡す方法PHPの連想配列をJavascriptに引き渡す方法についての記事です。B2】6月19日出荷分から「配達時間帯」の指定枠が変わるので、B2の仕様変更についてヤマト運輸に問い合わせてみたネットでも話題になりましたが、ヤマト運輸の配達時間帯の指定枠が2017年6月19日発送分から変わります。