4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

あなたの知らないCampaignバウンスの世界(1)〜同期バウンスと非同期バウンス

Last updated at Posted at 2022-01-31

最近J-POPではVaundyが個人的には「沼」きてますね。Aimerとのコラボ曲『地球儀』で沼落ちしました。新曲『踊り子』は小松菜奈のMVがよくてヘビロテで観ちゃってます。

Vaundyといえば…ばうん…バウンスメールですね!

Adobe Campaign(以下「Campagin」)は主要なタッチチャネルのひとつとして電子メールを利用できます。ただメールは、届かないことがあるんですよね。その届かないという状態を、Campaignはどう認識し、対処しているんでしょうか。

「届かない」という結果が返ってくるのを「バウンス」と呼びます。Campaginではバウンスの処理の仕方が2通りあります。「同期」バウンスと「非同期」バウンスです。

同期バウンス

実際のクライアントコンソールで見てみましょう。ある配信の開始後約1時間経過した配信ログ画面です:
E-000526990_delivery-log_in_client-console.png
2カラムめが「ステータス」で、ここが「失敗」となっているのがバウンスです。たとえば「失敗」のいちばん下のものを見てください。3カラムめ「理由」が「無効なアカウント」、「テキスト」カラムが「El usuario esta en estado: inactivo」とかいって何語だかすらわかりませんが、要は「ユーザーステータス: 非アクティブ」ということらしいですよ。これが同期バウンスの典型例で、Campaignからの送信要求に対し、宛先メールサーバーが、そのアドレスは「無効なアカウント」だよ、と弾き返してきたのです。するとつまり――ここちょっと注意してほしいんですが――同期バウンスとは、CampaignからのSMTPリクエストに対するSMTPレスポンスがその実体である、ということ。同期バウンスでは、メールが返ってきてるわけではないのです。メール受信してないから、POP3関係ありません。実際この同期バウンスに対応するサーバーログは、メール送信プロセスであるmtachildが生成しています:

mtachild.log
2022-01-05 18:07:38.733+09      000062D5        000062D5          1     warning log     550 Account disabled / El usuario esta en estado: inactivo

mtachildプロセスが発したSMTPコマンドに対し、宛先メールサーバーがレスポンスコード550で応答。その結果が上掲クライアントコンソール画面に反映されているのです。

非同期バウンス

Campaignで「バウンスしたEメールの管理」を設定するとinMailプロセスが起動するんですが、inMailはPOP3でバウンスメールを取得するためのものなので、じつはここまでの話とは関係ありません。「メールが返ってきてるわけではない」からPOP3いらないんですよ。

えっじゃあPOP3はどこで…とお思いでしょうか。そこで冒頭の話に戻ります。もうひとつのバウンス、「非同期」です。

同期バウンスは実体がSMTPレスポンスだとお話ししました。リクエストに対するレスポンスだから即座に返ってくる。だから同期なわけです。「非同期」はそれとは違い、宛先メールサーバーがいったんメールを受信しますが、それをわざわざバウンスメールとして突き返してきます。だから時間差が発生する。「非同期」たる所以です。

また画面で見てみましょう。別配信の配信ログです:
2022-01-31_17-13-07.png
「ik1mwjonn5qy2」といういかにもあやしげなメールアドレスへ配信されたことになっていますね。宛先メールサーバーがCampaignからのSMTPリクエストをいったん受信したのです。しかしじつは、そんなメールアドレスは宛先ドメインにやっぱり存在しません。なので、宛先メールサーバーはバウンスメールを返送します。「非同期」バウンスです。

ユーザーが存在しないなどのエラーに対し、同期バウンスを返すか非同期バウンスを返すか、そのSMTPレスポンスの中身やバウンスメールの形式などは、相手側、宛先メールサーバーの設定しだいです。

返されたバウンスメールは、inMailプロセスがPOP3で受信します。その様子をinMailプロセスの冗長ログで見てみましょう:

inMail.log
17:24:10 >   Connection opened for user 'POP3アカウント名' on server 'POP3サーバー名'
17:24:10 >   POP3 Server: '+OK  <1d5f.8adf3e.61f79caa.TIMG4aqizhSXNKDMbz+mdA==@mail02-md>'
17:24:10 >   POP3 Client: 'USER POP3アカウント名'
17:24:10 >   POP3 Server: '+OK'
17:24:10 >   POP3 Client: 'PASS *******'
17:24:10 >   POP3 Server: '+OK Logged in.'
17:24:10 >   POP3 Client: 'STAT'
17:24:11 >   POP3 Server: '+OK 1 110220'
17:24:11 >   1 message(s) (107.6 kB) for user 'POP3アカウント名' on server 'POP3サーバー名'.
17:24:11 >   POP3 Client: 'RETR 1'
17:24:11 >   MSG 1, 1429 byte(s) received (1.2965 %).
17:24:11 >   MSG 1, 2877 byte(s) received (2.61023 %).
17:24:11 >   MSG 1, 4325 byte(s) received (3.92397 %).
…中略…
17:24:12 >   MSG 1, 107133 byte(s) received (97.1992 %).
17:24:12 >   MSG 1, 108581 byte(s) received (98.513 %).
17:24:12 >   MSG 1, 110220 byte(s) received (100 %).
17:24:12 >   Receiving first message for user 'POP3アカウント名' on server 'POP3サーバー名'.
17:24:12 >   Receiving last message for user 'POP3アカウント名' on server 'POP3サーバー名'.
17:24:12 >   「送信者アドレス」からのメッセージ : ルール「User_unknown」が一致しました。メッセージは削除されました。
17:24:12 >   「送信者アドレス」からのメッセージ : ルール「User_unknown」が一致しました。メッセージは削除されました。
17:24:13 >   POP3 Client: 'DELE 1'
17:24:13 >   POP3 Server: '+OK Marked to be deleted.'
17:24:14 >   POP3 Client: 'QUIT'
17:24:14 >   POP3 Server: '+OK Logging out, messages deleted.'
17:24:24 >   Connection closed for user 'POP3アカウント名' on server 'POP3サーバー名'

煩雑なため詳細説明は割愛しますが、ここではとりあえずinMailがバウンスメールを受信したんだなというイメージだけつかんでください。で、このとき、inMailはデータベースの配信ログを更新します。するとさっきの画面がどうなるか:
2022-01-31_17-44-25.png

はい、さっきは「送信済み」になっていた宛先が「失敗」になってますね。このように、あとからステータスが変化するのが非同期バウンスで、inMailがPOP3でバウンスメールを受信することで処理されています。

…いかがでしょうか。たかがこれしきのことと思いきや、違う意味でなかなか「沼」ですね。そんな、あなたの知らないCampaignバウンスの世界を、あと何回かに分けてご案内していきたいと思います。お付き合いいただければうれしいです。

以上、筆者・跡部官辺が…あとべかんぺん…Adobe Campaignについてお届けしました!

本稿の内容は筆者のオンプレミス型デモ環境(Adobe Campaign Classic 9032@3a9dc9c・レガシーMTA)上で実施した検証に基づきます。別環境における同様の動作を保証するものではありません。またデータは架空のものであり、既存の配信や実在の組織とはいっさい関係がありません。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?