📑

メール周辺で知っておくと便利な用語

2022/08/22に公開

この章ではこれまでに取り上げていない、メール周辺でよく使われる技術キーワードを紹介します。

メール転送エージェント

Mail Transfer Agentのことで、MTAで呼ばれます。メールクライアント(MUA)からSMTPでメールを受信し、指定されたアドレスのSMTPサーバーへメールを転送します。メールを送受信する際の根幹ともなるソフトウェアです。

メール送信にはSendmailがよく使われていましたが、長い開発期間の中でセキュリティ上の課題があったり、修正に時間を要するようになってPostfixが代わりに使われるようになっています。他にもいくつか有名なMTAがあり、2022年6月のシェアレポート[1]によれば、次のようになっています。Eximが半数以上、ついでPostfixとなっています。

種類 サーバー数 パーセンテージ
Exim 263,743 59.59%
Postfix 148,912 33.64%
Sendmail 15,721 3.55%
MailEnable 8,553 1.93%
MDaemon 2,013 0.45%
Microsoft 1,033 0.23%

SMTPリレー

インターネットの黎明期においては、現在のようにすべてのサーバーがつながっている状態ではありませんでした。例えば以下のような図において、SMTPサーバーAはSMTPサーバーCへ直接メールを送付できません。そこで、SMTPサーバーBにメールを送信し、メールを届けてもらう必要がありました。この仕組みがSMTPリレーです。

2022年現在においては、そのような経由しないと配送できないというケースはほぼありません。しかし、現在は別な用途でSMTPリレーが用いられています。それは大量メール配信分野においてです。1時間に数千万通送付するようなメール配信システムを考えた場合、各社が独自でサーバーを用意するのは非効率的です。そこでblastengineのようなSMTPリレーに対応したメール配信サービスを利用し、大量のメール配信を安定して実行します。

AMP for Email

Googleが提唱するAMP(Accelerated Mobile Pages)をメールにも適用した技術です。デフォルトのメールはテキスト形式で、最近ではHTMLメールも使われるようになっています。しかしセキュリティ上の問題からHTMLメールの中でJavaScriptを実行したり、インタラクティブな操作はできません。それを可能にするのがAMP for Emailになります。

AMP for Emailではカルーセルやフォームなど、多彩なUIコンポーネントが用意されています。メールを表示する側のサービス・クライアントアプリケーションでも対応が必要になりますので、まだまだ利用は広がっていないのが実情です。とはいえ、Gmailでメールを開いてカレンダー共有の返信をしたり、レビューのレスポンスを行うなどの仕組みで利用が進んでいます。

執筆時点でAMP for Emailをサポートしているサービスは次の通りです。

  • Gmail (Web/iOS/Android)
  • Yahoo! Mail(Web)
  • Mail.ru

開封通知

メールが開かれたかどうかを判断する方法は大きく分けて2つあります。

メールヘッダーを利用する

Disposition-Notification-Toヘッダーにメールアドレスを付けて送信します。これにより、メールの開封通知を指定されたメールアドレスに対して通知します。ただし自動ではなく、メールクライアント側で送信して良いか許諾を求めるものが殆どです。また、メールクライアントの設定で「開封通知を送らない」という項目も存在します。Disposition-Notification-ToはRFC 8098[2]にて定義されています。

画像を読み込む

HTMLメールを使っている場合には、HTML中にトラッキング・ピクセルと呼ばれる1pxの画像を読み込むことで、開封を確認できます。なお、外部リソースの画像を読み込まない設定になっていると、トラッキングはできません。

Appleのメールアプリは開封前に画像を読み込んでしまう方式になっています。つまり開封していないにも関わらず開封完了の通知が来てしまうため、マーケティング上開封率が意味のないものになってしまいます。これはMail Privacy Protection(MPP)と呼ばれる機能になります。

List-Unsubscribeヘッダー

メールマガジンなどで使われているヘッダーがList-Unsubscribeヘッダーです。このヘッダーで指定できる文字列は2パターンあります。1つはURL、もう1つはメールアドレスです。URLの場合は、そのURLに対してPOSTメソッドが呼ばれます。URLにIDを埋め込んでおくことで、誰が購読停止を望んでいるか判定します。メールアドレスの場合は、そのメールアドレスに対して配信停止を希望するメールが来ますので、Fromで指定されているアドレスを使って購読停止対象を特定します。

スパムフィルター

メールのスパムフィルターとして使われることが多いのは以下のようなソフトウェアです。他にも商用スパムフィルターもあります。

  • SpamAssassin[3]
  • Rspamd[4]
  • Proxmox Mail Gateway

従来のスパムフィルターではベイジアンフィルタリングが使われてきましたが、最近ではAI/機械学習によるフィルタリングも採用されています。

SMTPUTF8

いわゆる国際化ドメインに対する対応になります。かつてメールヘッダーで利用できるのはアスキー文字に限定されてきましたが、RFC 6531などで定義されているSMTP Extension for Internationalized Emailに則ってUTF8エンコーディングされたユニコード文字列が許可されています。

脚注
  1. http://www.securityspace.com/s_survey/data/man.202205/mxsurvey.html ↩︎

  2. https://tex2e.github.io/rfc-translater/html/rfc8098.html ↩︎

  3. https://spamassassin.apache.org/ ↩︎

  4. https://rspamd.com/ ↩︎

Discussion