在網路上看到一個有趣的討論,為什麼有些郵件在 Gmail 有顯示寄件人的 LOGO?
以這個 Gmail app 截圖來說,大部分的郵件寄件者都沒有頭像圖,只有少數幾個有 LOGO

企業花了幾萬塊甚至更多錢做了 LOGO 或整套 CIS,每年可能也花了不少錢在寄信上,寄給使用者的信卻沒有顯示 LOGO,在這種小地方如果也能顯示出來就更好了,連蘋果的廣告信都沒顯示出 Apple logo,這是難得可以超越 Apple 的機會! 😂😂

正規作法:BIMI 適用於郵件識別的品牌指標

從 Google 的官方文件 準備設定 BIMI – Google Workspace 管理員說明 跟 BIMI 官方網站 學到一個新名詞 BIMI,原文全名是 Brand Indicators for Message Identification,適用於郵件識別的品牌指標,官方的理念是說利用對您的 DMARC 執行項目的投資,通過向您的客戶展示 LOGO 來增加品牌價值。自動管理並確保顯示正確的 LOGO。

簡單來說就是說遵循 BIMI 的規範,這樣店家寄信給使用支援的郵件服務商的收件者時候,寄件人資訊就會顯示指定的圖片。BIMI 官網底下可以看到 Gmail, Yahoo, Mailchimp 跟一些知名的網路服務商,Gmail 是在 2021 年說 Gmail全面支援BIMI,經驗證的企業電子郵件將可顯示品牌商標 支援這功能,而微軟並沒有在名單上面。

聽說台灣的企業要達到這個標準很難,要取得 VMC(驗證標記憑證, VERIFIED MARK CERTIFICATES),logo 要 SVG 格式之類的…
主要流程第一步看起來就是向國際憑證授權單位申請 VMC,我看了一下牌價…

Entrust DataCard – VERIFIED MARK CERTIFICATES FOR BIMI 一個商標是美金 999 元

Digicert – VERIFIED MARK CERTIFICATES + DMARC 的價格是美金 1499 元
Digicert – HOW MANY VERIFIED MARK CERTIFICATES (VMCS) WILL I NEED? 官方說明更是清楚的說明了大型企業有不同子域名和不同國家的情況,可能需要做好幾套 VMC。

要花大錢讓一些認證機構來背書,然後最後只是為了在一些小地方比別人多一點東西,感覺跟鄧白氏 D-U-N-S 企業認證有得拚。

第一步就很困難,第二步是申請完成之後,在網址 DNS 增加 LOGO 圖檔路徑與 pem 證書線上路徑的相關紀錄。

檢測後發現大部分的信箱似乎都沒有申請 BIMI

看了資料,從此以後在 Gmail 裡面看到這種在列表跟內頁有顯示 LOGO 的郵件,都露出羨慕和崇拜的眼神…甚至 Canva 的頭像圖還是會動的!

但我才不信大家真的有花錢去做認證,剛剛查到的 1000 美金是一年的費用,不是一次性的費用,跟 OV 和 EV 的 SSL 一樣是要每年認證的。

於是找來了幾個 BIMI 的檢測工具
– BIMI validator
– BIMI Lookup
– BIMI Inspector 推薦這個,資訊比較完整

實際檢查了幾家在 Gmail 裡面有顯示 LOGO 的郵件,樂天 rakuten.com.tw 是真的有申請 VMC,PEM 也真的解得出公司基本資料

其他一堆都是 BIMI failed, no DMARC record detected, BIMI Record Not found,看來「有設定 BIMI 」跟「寄信給 Gmail 能顯示公司 LOGO 圖片 」似乎可以分開來看。

使用 Gmail Workspace 或免費 Gmail 加上頭像

如果是 Gmail 寄給 Gmail,頭像顯示 LOGO?
這非常容易,就是設定 Google 個人檔案的頭像就好了,無論是免費 Gmail 寄信給免費 Gmail ,還是 Google 的企業版服務寄信給免費 Gmail 都行。

Google Workspace(以前叫 G Suite) 另外還有兩個特別的
1.管理員需要把允許使用者編輯設定檔 打開,不然可能找不到設定選項。
2.有時候自己公司內互寄,可以看到每個人各自設定的頭像,但是寄到外面去(例如寄給免費 ... 繼續閱讀⇢

滑臉書的時候至少兩個禮拜了吧,每天都會看到一個 Alibaba Cloud 的廣告:

別被限時優惠沖昏頭,該不會跟 Bluehost 或是一些網路服務一樣,第一年很便宜,第二年之後回復原價?
仔細看了一下阿里雲的郵件方案,大致有兩種
– 預繳付款,廣告的方案限購一次,原價是$13.05,可以讓人 6 個月發 5 萬封信,另外還有更貴的價格組合
– 按量付款,美金 $2.9 可以發 1 萬封,但一個阿里雲帳戶每日有 200 封免費扣打,理論上發信數較少的甚至可以免費使用,太香了。

這廣告打得很精準,值得讚賞:
1.現在主流的公有雲裡面少說都有幾十種服務,比元素週期表還細,這個貼文型輪播廣告知道要把 Direct Mail 服務放在最前面,如果是放其他我壓根不會用到的服務,我肯定不會感興趣。
2.投放時間夠長,銀彈夠多,至少好幾天都有看到,不會連個印象都沒留就消失了,下次連要找都找不到。因為阿里雲不是政治議題、社會運動類的粉專,所以從廣告檔案庫也看不到廣告總花費總金額。
3.廣告文案使用美金價錢,對於一些常常使用 AWS 或國外服務的價格敏感型使用者,美金就很淺顯易懂,不像有些網頁上用什麼港幣、人民幣、歐元、英鎊? 我連匯率都懶得查就關掉了。

後來有一次我終於深陷套路之中,點進去看,也完成註冊、綁定信用卡等動作了。

在這之前寄信我比較常用 AWS 的 SES,先不算國外刷卡手續費,我也不是公司,不用報神馬境外稅(外國營利事業跨境銷售電子勞務課徵所得稅),1萬封大約是1美金。
但這個阿里雲的郵件服務似乎更便宜,廣告上寫 50,000封郵件,6個月有效期,僅需US $ 1.99,限時優惠! (這個連結要用電腦開才會看到價目表,用手機看不到)

註冊時國家的選項又被迫選了「中國台灣」,註冊完之後,分到新加坡區域的機器

先用 SMTP 寄送方式來測試,SMTP 發的郵件要指定 Reply Header 不然會報錯, Mail From 的 email 也要跟阿里雲後台的設定的相吻合,不能亂設,否則也會報錯讓信寄不出去。
一開始只是用來發一些測試信,一天大概十幾封,用了一陣子,信譽等級還是2。

基本功能該有的都有,阿里雲的 Direct Mail 網頁介面的發送記錄功能比 AWS 還要多,直接就可以看到哪天幾點幾分寄信給誰,是否寄送成功的記錄,畫面上寫「查询时间范围最多支持30天。」也可以直接看「每個發信域名」發了幾封信。當然為了資安原因,無法直接查看發送記錄的郵件內文。

今天突然突發奇想,發一封「退支咒」來試試(不知道的人可以去 Google,就是由一些中國大陸地區的學運、民運相關敏感字詞組成的一份文字清單),

結果寄送失敗,得到的 Exception 訊息是

伺服器回應為: Reject by content spam [@sm190603] ANTISPAM_CAT

我這封測試信的內容是不是垃圾內容? 的確是,
垃圾內容應該要被擋掉嗎?是該被擋掉。
但這事兒究竟是「高科技的垃圾內容判定」,還是「關鍵字被和諧」「思想審查」,是不是因為國家政策規定 aka 政治因素,這個郵件推送服務有在審查關鍵字呢?
這就不得而知了,需要多加嘗試,

使用紅色供應鏈的產品服務,就是這麼麻煩。... 繼續閱讀⇢

江湖在走,Cost down 要有,Cost down 的能量,決定於服務的 limits 與 quotas 。

有件麻煩事一直造成困擾,就是寄信這回事。這其實又是在解決別的團隊 N 年前就解決的問題。

競爭力其實是很複雜的一件事,
有些產品的價格很有競爭力,是因為該給員工的沒有給;
有些產品的價格很有競爭力,是因為在看不到的地方讓大家省錢花時間

開發客製化系統,除了要解決「套版」「Open Source」工具無法解決的問題,也得跟上市面上各種「大平台」的潮流。
以購物網站來說,除非沒有人在逛,不然理論上每天有一堆信要寄…
1. 會員註冊驗證信
2. 會員歡迎信
3. 會員密碼重設信
4. 會員密碼已變更通知
5. 網站線上聯絡表單通知信
6. 購物訂單狀況相關通知信
7. 購物已收到款項通知信
8. 購物已出貨通知信
9. 會員生日通知信
10. 會員折價券通知信
11. 會員折價券到期通知
12. 會員購物車未結帳商品通知信
13. 訂單問答店家回信
14. 訂單問答客人回覆
15. 各種為了 retention 的程序化信件。

還沒講到 edm / 會員電子報呢。

一、以前用免費信箱帳號面臨的問題

平常鮮少遇到「花多少錢能把這做好」這種事,只有「會動就好,能省則省。」本來在寄信這回事,用的是一些免費省錢花時間的方案,但各有一些缺陷…

(一)、用店家自己的企業信箱(如 mail2000 或一些虛擬主機附的信箱),缺點有:

1.查不到寄件備份,除非每一封寄出的信都 bcc 給開發人員或 log 專用的 email,不然出問題時只能人工去重現,或是隔空抓藥。
2.改了密碼,但是網站後台的 SMTP 密碼沒改,信寄不出去。
3.因為寄了太多對消費者來說是垃圾的信,連累到一般正常往來的郵件收發,讓企業人員的公務信件常常寄到垃圾桶去。
4.越來越少人還在用什麼 Outlook 或是 @ 後面帶公司域名的企業信箱。對一些小企業小店家來說,甚至每天在 FB 私訊或是回的 Line 比 email 還多。
5.網頁表單的信有寄出去嗎? 有寄出去,但是因為店家容量超小的企業信箱滿了,信被退回到寄件伺服器那邊。通常是店家接到消費者抱怨說「線上反應問題都不處理」的時候才會發現。

(二)、用 Google 免費帳號/網頁公司的 Google 企業帳號**代發,寄件備份是有了,缺點有:

1.網站後台的「寄件設定」可以看到一組 Google 帳密,閒雜人等登入之後可以看到不該看到的信件紀錄。
2.訂購表單一陣子都沒訂單,登入帳號一看,原來已經被停用啦!信根本寄不出來,哪來的訂單?

3.因為外部應用程式寄信政策問題,設定打開之後隔一陣子又被鎖 5.5.1 Authentication Required

出現這種訊息,有時候是真的被偷登了,有時候是網頁表單寄件程式的請求被擋掉。
4.Gmail 傳送限制 每日寄信額度 500 封。
5.寄件程式設定有誤時,回信通通回給寄件伺服器,而不是到應該收到信的人手上。
6.信箱改了登入密碼,但是網站後台的 SMTP 設定沒跟著一起改,信又寄不出去了。

總之有各種原因發信服務沒有正常運作,但沒人知道的情況。
各種以為信有寄出去,但是應該收到信的人根本沒收到的情況。

二、尋找解決方案?

首先出國去考察……技術人員只能「坐在電腦前面」就要解決問題,沒有「行出國考察之名,順便行OOXX之實」的份兒。

使用了如智*生活館 – 輕鬆架站方案 的「訂購表單」,或是上網時整天跳廣告說上網賣東西超簡單超輕鬆的那些開店平台,或是「大中華市場」「亞洲市場」的一些線上服務,已經沒有人還在叫店家管理者設定 SMTP 了。

叫使用者整天處理 SMTP 的爛問題,大概就跟點表單還在跳 outlook ,出門買東西還在數零錢、結帳時刷好幾組條碼一樣麻煩。現在網站發信都流行用 Mailgun, Amazon SES 之類的外部發信服務。

三、導入外部發信服務

近幾年已經有許多技術人員的部落格,陸續發表一些國考上榜心得,或是養小孩………呃不,是外部寄信服務的使用心得,基本特色如下:
1. 有免費的每日寄信額度,要買的話也不貴,通常幾千封才 1 刀,(還有國外刷卡手續費。)
2. 不用寫半行程式碼,也不需要在網址加參數加到落落長,就可以追蹤使用者是否有開信,或點擊了哪些連結。
3. 寄出去的信都有紀錄。
4. 統一監控寄件系統運作狀態。
5. 不用擔心有人把信件回覆寄給寄件伺服器。
6. 通常是使用 API 串接發信,有些也提供 SMTP 帳密發信。
7. 這種服務商通常都國外開的,碰到問題怎麼辦? 看當初是誰說要用這個的,叫他去處理啊?

自己用 wordpress 跟 plugin 跟 opencart 試用一陣子之後,覺得也還不錯,也沒有什麼機敏信件,於是決定導入公司的產品與客戶內進行全民公測,然後這種實戰場合才是災難的開始,

四、不做不錯,多做多錯,很多坑 第一雷 : 雲端是個好東西,但要會用

全世界的外部寄信服務,用兩隻手都數不完,像是 7 Best Transactional Email Services: Sendgrid vs. Mandrill & More 就介紹了好幾個,但夠佛的就屬這兩套:
– 從 Amazon EC2 執行個體直接或透過 AWS Elastic Beanstalk 呼叫 Amazon SES(Simple Email Service) 時,每月可以傳出 62,000 則訊息給任何收件人。
– 從 Microsoft Azure 上使用 SendGrid ... 繼續閱讀⇢

許多網站上面會有聯絡表單或是訂購表單的程式,從前的作法是使用者填寫完畢後按「發送」,瀏覽器會呼叫電腦內與 mailto:// 協定關聯的應用程式,如 Outlook Express 或 Microsoft Outlook ,把表單內容發送給網站的管理員。

但是比較近代的作法,則是在使用者按下「發送」後,使用網頁表單程式內設定的 SMTP 伺服器與帳密,寄到設定好的信箱,使用者不用暴露自己的 email 位址,也不用裝 Outlook 等本機郵件軟體。

SMTP 伺服器與帳密哪裡來? 如果是用 HiNet 的寬頻上網,會有一組信箱帳號,但一般最常見的是用 Google 帳號當作網站表單的 SMTP,畢竟免費的嘛,只能限制很多就是了。

如果表單程式用 Gmail 當SMTP,遇到信寄不出去,遭遇症狀:
* 程式錯誤訊息「5.5.1 Authentication required」,
* 收到一封「Google 帳戶:登入嘗試遭拒」的郵件

該怎麼辦呢? 這一些都是為了安全性,Google 把所有不是透過 Gmail 網頁操作的發信需求,通通都先擋起來了。可以透過以下步驟解開限制:

1.將「安全性較低的應用程式存取權限」設為「啟用」

進入此網頁 https://www.google.com/settings/security/lesssecureapps ,設為「啟用」。
如果怕我給的連結是騙人的,您也可以到 Google 帳戶內找到「安全性較低的應用程式存取權限」的設定,是一樣的東西。

這時候再寄看看,通常只要啟用這個,網站的表單就可以正常寄送了。
如果還不行,請再往下看。

2.解除人機驗證鎖定

進入此網頁 https://accounts.google.com/b/0/DisplayUnlockCaptcha 點擊「繼續」。

這時候再寄看看,通常只要啟用這個,網站的表單就可以正常寄送了。
如果還不行,請再往下看。

3.檢查SMTP帳號與收件人名稱是否相符

MailMessage mail = new MailMessage();
mail.From = new MailAddress("123@gmail.com", "系統發信");
SmtpClient smtpServer = new SmtpClient();
smtpServer.Credentials = new NetworkCredential("123@gmail.com", "ABCDEFGHIJK");

似乎2019年下半年出現的新問題,mail.From 一定要跟 NetworkCredential 裡的帳號是同一組,以前 mail.From 是可以設別組信箱的,這樣收到系統寄的信,收件人可以顯示得比較好看。

跟主機設定有關

1.如果程式是放在 Microsoft Azure,要去調整 SSL 的設定跟 Web.config,才能用 Gmail 當網站程式的 SMTP。(點此相關 stackflow 的討論串)。
2.如果程式放在 GoDaddy,信也無法直接寄出來,可以直接改用 Godaddy 的郵件轉送伺服器,參考 Send form mail using an SMTP relay server | GoDaddy

還是不行?
  • 請檢查表單程式內的 Gmail 帳號、密碼、SSL、PORT 有沒有打錯。帳號把完整的 @gmail.com 也打上。
  • Google 帳號是否有改過密碼?
  • 寄件程式根本就寫錯了?
  • 如果明明一切設定都正常,但不管怎麼寄都是 5.5.1 Authentication required,還時好時壞,遇到這種情況建議可以換別組 Google 帳號再試試。
SMTP密碼改用應用程式專用密碼(需啟用兩步驟驗證)

進入此網頁 https://accounts.google.com/b/0/SmsAuthConfig?hl=zh_TW,啟用兩步驟驗證。
從此以後,在尚未信任的裝置上用email跟密碼登入 Google 帳號,是無法使用的。一定還要再透過電話或簡訊驗證,才能真正登入帳戶。
進入此網頁 https://security.google.com/settings/security/apppasswords?pli=1,產生一組應用程式專用密碼,然後把寄件程式內的 google 密碼換成這組應用程式密碼。

這組應用程式專用密碼只能登入一個地方,如果把這組密碼先拿來當smtp寄信,又再拿去登入其他東西,後來那個是無法登入的。

現在科技日新月異,不只有電子郵件通知,還有簡訊通知,或是行動裝置 App 推播…
我們都知道天下沒有白吃的午餐、免費的最貴的道理,

用免費信箱當 SMTP 有什麼壞處呢? 1. 信件容易寄到垃圾郵件匣去

如果網站管理員沒去看垃圾郵件匣,容易發生遺憾。 甚至還有用自動轉信的,信留在原信箱的垃圾信件匣裡面,而不會出現在轉寄的信箱裡案例。
不過此題其實無解,付費使用的 HiNet 或 Hibox 信箱、學校信箱,也常常被 Gmail 誤判為垃圾郵件。

2. 免費信箱通常有單日寄件封數上限、單封信收件人數上限…等限制

如網站使用 Gmail 當 SMTP,一天寄超過 500 封信,伺服器會回應 “5.4.5 Daily sending quota exceeded” 而無法寄出信件。

如果發生這種情況,會有兩種下場:
一種是程式沒設定錯誤畫面,所以使用者會看到主機錯誤訊息,但沒仔細看上面寫些什麼,以為信有寄出去。第二種是程式設定發生錯誤時直接跳轉到首頁,使用者也會以為信有寄出,但是實際上並沒有。

使用者等了一陣子沒收到回覆,事實上信根本沒寄出,管理員也根本沒收到信,這就容易起爭議。

3. 免費信箱有單日寄件封數上限,那改成付費信箱或企業信箱總行了吧?

付費信箱或企業信箱因為功能特殊,雖然只要付得起錢,功能要多少就有多少,但是一般方案的「信箱總容量」或「單封郵件大小限制」,通常比免費信箱給的額度還少,附件大一點的信收個幾封,信箱就滿了。信箱滿了是有可能收不到信的。如果網站表單沒設驗證碼,有心人士可以用按鍵精靈腳本或 greasemonkey 腳本直接重複發信,輕易把管理員信箱灌爆,或是讓網站SMTP超出寄件限額,讓網站的信寄不出去。

除了拿 Gmail 來當網站程式的 SMTP,有些「跨國企業」則會使用免費的 QQ 企業信箱(QQ企業郵箱)。

QQ 企業信箱拿來當 SMTP,有什麼要點要注意呢? 1. 寄件速度很快

按下發送到程式回傳「發送成功」的時間極短,寄送的 loading 動畫都來不及看,很不方便。反觀 Gmail 通常至少都要 2 秒以上。

2. 寄件人email 要跟 SMTP 帳號吻合

許多寄件程式都會有這種下面這種效果設定,通常名稱會用網站名稱,username 會用一個好看的 email。... 繼續閱讀⇢