メールの開封を確認する
結論から言うと、メールの開封確認は原理上できません。
SMTPの仕様上、自分から分かるのは自分の送りつけたSMTPサーバーの時点で問題が起こっていないかまでであり、
その先の問題についてはきちんとバウンスメールを送ってくれるかどうかにかかっています。
よって、すべてのメールの到達確認や開封確認を正規の手法で行うことはできません。
それでも確認したい場合の方法
とはいえ、メールの開封確認の需要は昔からあったので、様々な方法が考案されてきました。
開封確認ヘッダ
メールヘッダに Disposition-Notification-To
を足すことで、
受信側に開封確認通知を要求します。
ただ、スパムメール等で多用されたため、
現在はこれに対して真面目に送り返してくれるメーラーやWebメールはほとんどありません。
HTMLメールで
タグを仕込む
HTMLメールを利用して、タグのsrc部分に開封確認を行うサーバーのurlとメールを識別するパラメータを仕込みます。
画像自体はごくごく小さい人の目では確認できないものを利用するのが通常です。
かなり幅広く用いられている方法です。
ただし、そもそも画像を表示しない設定にしている場合には対応できませんし、
セキュリティ的な理由から外部アクセスを拒否している場合もあります。
ここで検知できなかったからと言って開封していないとは言い切れないのがつらいところです。
メール文中のリンクに仕込む
メール本文中のリンクをクリックした際に記録用のサーバーを経由させることで、
ユーザーが開封したことを確認する方式です。
SendGridなどの一部のメール系サービスで利用できます。
ユーザーに能動的にリンクをクリックしてもらうため、セキュリティ上の問題で弾かれることはありません。
しかしながら、当然メールを開いたら当然リンクをクリックしてくれるような類のメールではないと意味がありません。
(資料をWeb上においてリンクだけメールで送る場合など)
まとめ
- 仕様上、メールの100%の開封確認はできない
- 開封したことの検知だけはある程度可能
- 100%の受信確認が必要な場合はメール以外を利用することも検討するべき