程式設計

eMail的解決方法之一:SendGrid 與優缺點

C#如果要在沒有Mail Server或者是根本禁用了eMail發送的Port的服務上(如GCP),要怎樣解決發送信件的問題,這是一個很值得討論的問題。

可以自己架設一個Mail Server但會有管理及安全性問題還有架設Server的成本,尤其是很難架設在GCP上,其他的雲端平台還要申請開放Port寫專案計畫如AWS。

也可以使用API的方式用eMail SMTP Service 發送電子郵件,這邊就要介紹我們公司在用的SendGrid,其實我們公司是使用免費方案,因為付費方案的可發送的信件數量我們壓根到不了。

免費方案

為了避免廣告,就不常常更新免費方案的額度和限制了,但大致上可以寄送100封 eMail一天,這對小型公司就很夠用了。尤其如果只是做網站的聯絡表單的寄送,小型的公司,一天有100個人發送表單大概是被攻擊了吧!

這個C#有Nuget的組件可以下載,SendGrid也有C#的範例程式碼,因為避免重製問題,就不放在這邊。

付費的話就算到10萬封電子郵件一天,也只要$34.95左右,其實價格在業界不是最便宜,但我們用了這麼多年(大概十年前就開始用)還沒有服務中斷無法使用的狀態過。

大略的使用方法

最簡單的使用方法就是驗證好回覆的eMail信箱位址(比如noreply@artchen.dev),然後取得一個API的Key。

這個Key一定要在後端程式,且不要不要心上傳到GitHub還設定Public,不然會被惡意利用。

只要有Key就可以用它內建的物件來做非同步化或者同步化的傳送信件。

信件可以是HTML/Plain Text都有的版本。

優點

信件幾乎都不會被放到Gmail的垃圾郵件信箱,因為他們的SMTP Server IP多半在白名單。

但大量寄送信件的時候可能要小心一點有沒有觸犯他們的TOS(比如Spamming的定義)。

如果心情好甚至可以寫一個Newsletter系統,就不用使用Mailchamp,可以更彈性的結合自己公司的管理系統。

缺點

免費方案只能提供很小型的專案或網站使用,如果要發送「忘記密碼」等信件,免費方案絕對不夠。

那就要最少$19.95的費用,在同業裡面他不算最便宜的。

再來是如果要取消訂閱的功能,這個就不如使用Mailchamp容易,要自己用程式寫。

尤其現在法規似乎有規定行銷電子報一定要有取消訂閱的功能,這個就要花點心力在上面。

結論

雖然不是在幫SendGrid推銷,但有免費方案不妨使用看看好不好用,因為我們公司用免費方案了10年多(說來慚愧但真的付費方案用不到)。

 

What's your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

Comments are closed.