RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

メールの到達率を支える配信エラー解析のしくみ【はいくる通信 第5回】

こんにちは、takaramです。

メール配信サービス 配配メールクルメルの開発チームでは昨年、はいくる通信と題し、メール配信に関する技術・ノウハウをご紹介しました。

今回はその続編として、配信エラー解析についてお話したいと思います。

配信エラー解析とは

「自分の送ったメールが届かなかった」という経験はあるでしょうか?メールの送信に失敗する原因としては、例えば以下のようなものがあります。

  • メールアドレスが間違っている
  • 相手のメールボックスが満杯になっている
  • 相手に受信拒否されている
  • サーバ間で通信に失敗した

特にメールマガジンなどの一斉配信においては、配信エラーは珍しくありません。内容に興味がなくなった読者に受信拒否されたり、そもそも登録したアドレスが間違っていたりといったケースです。

エラー理由によって解決策は全く変わってくるため、メールが届かないとの問い合わせを読者から受けた際にはまず理由を把握する必要があります。また、配信エラーを放置し届かないメールを送り続けることはコストの無駄になってしまいます*1

そこで、我々の開発している配配メール/クルメルには配信エラー解析機能があります。

配配メールの配信エラー解析
配配メールの配信エラー解析(配配メールWebサイトより)

配信に失敗したアドレスとその理由がわかるほか、配信エラーが一定回数発生するとそのアドレスへの配信を自動で停止します。アドレス間違いなどの恒久的なエラーの場合は1回、メールボックスの容量オーバーなどの一時的なエラーの場合は3回の配信エラーで配信を停止します(回数は設定で変更可能)。

しかし、一斉に配信したうちのどのアドレスがなぜ配信エラーになったのか、どうやってわかるのでしょうか。

配信エラー解析のしくみ

みなさんはこのようなメールを受け取ったことはありませんか?

"Undelivered Mail Returned to Sender"という件名のメール

これはバウンスメールと呼ばれるもので、送信したメールが相手に届かなかったことを知らせるメールです。受信拒否などの場合は送信先サーバから、アドレスの@以降が間違っている、送信先サーバへの接続に失敗したなどの場合は送信元サーバからバウンスメールが送られます。

ではバウンスメールの宛先はどのアドレスかというと、もちろんメールのFrom(差出人)アドレスです。とはいっても、ここで言うFromアドレスは、みなさんが思い浮かべるものとは少し違っています。

二種類のFromアドレス

メールの送受信の際、サーバやPCの間では以下のようなデータがやり取りされています。

Date: Mon, 9 Mar 2019 12:34:56 +0900
From: taro@example.com
To: hanako@example.jp
Subject: Test Mail

こんにちは!

本文は「こんにちは!」の一行だけですが、件名や送信日時などが書かれたメールヘッダが付け加えられています*2。ここでFromに書かれているのが受信者が目にするFromアドレスで、ヘッダFromと呼ばれます。メルマガなら通常メールを作成した会社やブランドのアドレスになります。

一方、メールデータ(メールデータ+本文)を送信する際、送信元サーバはメールヘッダとは別に差出人と宛先のアドレスの情報を送信します。このFromアドレスをエンベロープFromといいます。ヘッダFromと違い、基本的にコンピュータ間の通信用にのみ使われるアドレスで、配配メールを使って送信したメールなら配配メールのサーバのアドレスになります。バウンスメールはこのエンベロープFrom宛に送信されるのです。

f:id:takaram:20200321191419p:plain:w580
メール送受信のイメージ

配配メールでは、一斉配信でも一通一通異なるエンベロープFromを利用していて、アドレスの中にメールIDや読者IDなどの情報が含まれています。そのため、受信したバウンスメールの宛先を見れば、誰が誰に送ったどのメールが配信エラーになったかがわかるのです。

ではエラー理由はなぜわかるかというと、バウンスメールの本文を解析しています。文面はバウンスメールを送信するサーバのソフトウェアによって異なりますが、そこに含まれるフレーズを元に判定をします。例えば「user unknown」というフレーズが含まれればアドレス間違い、「Rejected as spam」が含まれれば受信拒否、といった形です。

配信エラーと到達率

ここまで配信エラー解析のしくみをご紹介しましたが、実はこの機能、我々のサービスの質を守るためにも重要なのです。

もし配信エラー解析機能がなく、利用者が配信エラーに気づかなければ、使われていないアドレスにもメールを送り続けることになります。これは第1回の記事で紹介した「IPレピュテーション」を下げる要因となります。

すなわち、受信サーバが配信サーバを「適当なアドレスにメールを送りつけるスパムサーバ」と認定し、メールを受け付けてくれなくなるのです。

メール配信サービスとしてメールをしっかりと届けるためにも、配信エラー解析は重要な機能なのです。

まとめ

メール配信サービス 配配メール/クルメルの配信エラー解析のしくみ、ご理解いただけたでしょうか?

利用者が配信の状況を把握できるだけでなく、サービス全体の到達率を維持するためにも重要な機能となっているのです。

*1:メール配信サービスの利用料金は、一般的に配信通数やアドレス登録数で決まります。

*2:実際は本文の文字コード、返信先アドレス、メッセージIDなどもっと多くの情報が書かれています。

Copyright © RAKUS Co., Ltd. All rights reserved.