headerを設定すると何が起きるのか整理する
出典となるRFC
- RFC 2369 - The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields 日本語訳
- RFC 8058 - Signaling One-Click Functionality for List Email Headers 日本語訳
先にまとめ
RFC2369で、メーラーに関してそのメールの購読解除の案内をするヘッダとして List-Unsubscribe
ヘッダの仕様がある。このヘッダはメールアドレスを指定しておくとその宛先にメールを送る、URLを指定するとそのページに遷移するというような挙動をサポートするヘッダ。
RFC8058でList-Unsubscribe
と合わせて、List-Unsubscribe-Post
を利用すると、指定したURIにPostリクエストを送信する仕様が定義されている。
ヘッダについて
List-Unsubscribeヘッダ
RFC2369にて定義されている設定。ユーザが対象のメールの購読を解除するためのアクションを設定する。値として例示されているのは大きくmailtoの形式と、URLの形式。
▼mailtoの形式
List-Unsubscribe: <mailto:list@example.com?subject=unsubscribe>
▼URLの形式
List-Unsubscribe: <http://example.com/list.cgi?cmd=unsub&lst=list>
なお複数の形式も設定することもできる
List-Unsubscribe: <http://example.com/list.cgi?cmd=unsub&lst=list>,<mailto:list@example.com?subject=unsubscribe>
List-Unsubscribe-Postヘッダ
RFC8058に定義されている設定。List-Unsubscribe
とセットで利用するヘッダで、セットで送ることでList-Unsubscribe
にPostリクエストでワンクリック登録解除が実現できることを示す。なお、フォーマットは以下の通り。
List-Unsubscribe-Post: List-Unsubscribe=One-Click
なお、List-Unsubscribe=One-Click
以外の書き方は現時点では記述が存在しないので書き方はこの一択。
挙動について
RFC8058の挙動に関して意図通りにサポートしていることが明確なのはGmailだが、他のメーラーに関しては対応状況はまちまちの様子である。なかでもOutlookに関しては List-Unsubscribe
にURLしかない場合には意味がないものとみなすことがあるとのこと(詳しくは参考リンク参照のこと)