Email 的取消訂閱:Unsubscribe


#1

首先 … 起承轉合的來解釋這個東西,如果你想完成的話,然而必須先符合前期條件

  1. Email 是一封一封送的,不是用密件副本加入一票人一起送
  2. 發送時你知道對方的 Email 和使用者帳號的關聯

兩個缺一不可 …

首先單純有人發問,為啥 Gmail 內有些信件會有『取消訂閱』的文字,並且有效?Email 系列其實和 HTML 一樣都是 opensource 的,如果你對他的原始內容有興趣的話,& 你應該可以找到類似的文字『List-Unsubscribe』(有特例之後說明) & 你可以在下面兩個連結找到 spec

https://www.ietf.org/rfc/rfc2369.txt

簡單的來說就是增加 Email 的 header 即可,而該 header 中 url 內可以帶 mailto & http[s] 兩種 protocol,然而你必須在裡面增加對應的連結,因為這等於 callback 到發送對象,讓對方可以說:『我想退訂』,所以到發送方也必須知道誰掉退訂才行 …

你可以把每個使用者都增加一個 token 亂碼,發送時把亂碼加入即可,類似 callback 的網址為

http // example . com / unsubscribe / ABCXYZ

ACBXYZ = user_id(8) 的使用者,自己再寫轉碼器即可(如果是免使用者但卻可以訂閱的系統,則對應直接就是 email account … 嘛 … 這裡自己設計啦,其實甚至還可以做追蹤連結,類似哪封內容最討人厭之類的 X"D)

然而另外一個條件:該網址必須出現在 Email body 內,類似多個 a tag 文字『unsubscribe / 退訂』,然後連結相同,否則有些 mail 提供商不會出現該選項,因為為隱藏連結 … 且所謂的退訂就是下次不要再發送給這個使用者,否則很多時候該選項也會被判定失效的 …

然而有些 Email 內沒有 List-Unsubscribe 卻可以退訂,原因同上,body 內有特殊文字的 a tag ,Gmail 比較聰明,它自動幫你拉出來而已

不過以上,這些內容我沒實作過,因為目前沒退訂需求就是 …,所以已經實做過的歡迎 feedback 回來就是