許多網站上面會有聯絡表單或是訂購表單的程式,從前的作法是使用者填寫完畢後按「發送」,瀏覽器會呼叫電腦內與
mailto:// 協定關聯的應用程式,如 Outlook Express 或 Microsoft Outlook ,把表單內容發送給網站的管理員。
但是比較近代的作法,則是在使用者按下「發送」後,使用表單程式內設定的 SMTP 伺服器與帳密,寄到設定好的信箱,使
用者不用暴露自己的 email 位址,也不用裝 Outlook 等本機郵件軟體。
SMTP 伺服器與帳密哪裡來? 如果是用 HiNet 的寬頻上網,會有一組信箱帳號,但一般最常見的是用 Google 帳號當作網
站表單的 SMTP。
詳細 Gmail SMTP Port:https://support.google.com/mail/answer/7126229?hl=zh-Hant
如果表單程式用 Gmail 當 SMTP,遇到信寄不出去,只看到主機錯誤訊息「5.5.1 Authentication required」,或是收到
一封「Google 帳戶:登入嘗試遭拒」的郵件,該怎麼辦呢?
這一些都是為了安全性,Google 把所有不是透過 Gmail 網頁操作的發信需求,通通都先擋起來了。可以透過以下步驟解開
限制:
1、將「安全性較低的應用程式存取權限」設為「啟用」
進入此網頁 https://www.google.com/settings/security/lesssecureapps ,設為「啟用」。
如果怕我給的連結是騙人的,您也可以到 Google 帳戶內找到「安全性較低的應用程式存取權限」的設定,是一樣的東西。
詳細參考:https://support.google.com/accounts/answer/6010255
這時候再寄看看,通常只要啟用這個,網站的表單就可以正常寄送了。
如果還不行,請再往下看。
2、解除人機驗證鎖定
進入此網頁 https://accounts.google.com/b/0/DisplayUnlockCaptcha 點擊「繼續」。
這時候再寄看看,通常只要啟用這個,網站的表單就可以正常寄送了。
如果還不行,請再往下看。
3、啟用兩步驟驗證,再設定應用程式專用密碼
進入此網頁 https://accounts.google.com/b/0/SmsAuthConfig?hl=zh_TW ,啟用兩步驟驗證。
從此以後,在尚未信任的裝置上用email跟密碼登入 Google 帳號,是無法使用的。一定還要再透過電話或簡訊驗證,才能
真正登入帳戶。
進入此網頁 https://security.google.com/settings/security/apppasswords?pli=1 ,產生一組應用程式專用密碼
,然後把寄件程式內的 google 密碼換成這組應用程式密碼。
這組應用程式專用密碼只能登入一個地方,如果把這組密碼先拿來當smtp寄信,又再拿去登入其他東西,後來那個是無法登
入的。
還是不行?
請檢查表單程式內的 Gmail 帳號、密碼、SSL、PORT 有沒有打錯。
或是 Google 帳號是否有改過密碼?
或是寄件程式根本就寫錯了?
如果明明一切設定都正常,但不管怎麼寄都是 5.5.1 Authentication required,還時好時壞,遇到這種情況建議可以換別
組 Google 帳號再試試。
另外請檢查主機設定,如果程式是放在 Microsoft Azure,要去調整 SSL 的設定,才能用 Gmail 當網站程式的 SMTP。
現在科技日新月異,不只有電子郵件通知,還有簡訊通知,或是行動裝置 App 推播…
我們都知道天下沒有白吃的午餐、免費的最貴的道理,那麼用免費信箱當 SMTP 有什麼壞處呢?
1、信件容易寄到垃圾郵件匣去,如果網站管理員沒去看垃圾郵件匣,容易發生遺憾。
甚至還有用自動轉信的,信留在原信箱的垃圾信件匣裡面,而不會出現在轉寄的信箱裡案例。
不過付費使用的 HiNet 或 Hibox 信箱、學校信箱,也常常被 Gmail 誤判為垃圾郵件。
2、部分國家的網路封鎖 Gmail,網站的聯絡表單無法使用 Gmail 伺服器寄信,得先透過如翻牆之類的程序。
3、信箱通常有單日寄件封數上限、單封信收件人數上限…等限制,如網站使用 Gmail當 SMTP,一天寄超過 500 封
信,伺服器會回應 “5.4.5 Daily sending quota exceeded” 而無法寄出信件。
如果發生這種情況,會有兩種下場:
一種是程式沒設定錯誤畫面,所以使用者會看到主機錯誤訊息,但沒仔細看上面寫些什麼,以為信有寄出去。
第二種是程式設定發生錯誤時直接跳轉到首頁,使用者也會以為信有寄出,但是實際上並沒有。
使用者等了一陣子沒收到回覆,事實上信根本沒寄出,管理員也根本沒收到信,這就容易起爭議。
1、承上,免費信箱有單日寄件封數上限,那改成付費信箱或企業信箱總行了吧?
付費信箱或企業信箱因為功能特殊,雖然只要付得起錢,功能要多少就有多少,但是一般方案的「信箱總容量」或「單封郵
件大小限制」,通常比免費信箱給的額度還少,附件大一點的信收個幾封,信箱就滿了。信箱滿了是有可能收不到信的。
如果網站表單沒設驗證碼,有心人士可以用按鍵精靈腳本或 greasemonkey 腳本直接重複發信,輕易把管理員信箱灌爆,
或是讓網站 SMTP 超出寄件限額,讓網站的信寄不出去。
除了拿 Gmail 來當網站程式的 SMTP,有些「跨國企業」則會使用免費的 QQ 企業信箱。
QQ 企業信箱拿來當 SMTP,有什麼要點要注意呢?
1、寄件速度很快,按下發送到程式回傳「發送成功」的時間極短,寄送的 loading 動畫都來不及看,很不方便。
反觀 Gmail 通常至少都要 2 秒以上。
2、收件人名稱問題,許多寄件程式都會有這種下面這種效果設定,通常名稱會用網站名稱,username 會用一個好看的
email。
但是 QQ 郵件如果照這樣寫,會得到”553 Mail from must equal authorized user”而無法寄信。
mail.from 的名稱要改成跟 smtp 的 username 一樣才能寄。
3、QQ 信箱一樣有信件寄送數量之類的限額,天底下沒有白吃的午餐。
4、跟表單程式沒啥關係,是有一次客人反映 QQ 企業信箱收不到信,於是順便測試了一下,在信中加入以下「退支咒」,
即使寄件人是通訊錄內的人,信也會直接到 QQ 的垃圾郵件匣去,完全不會進收件匣。
Reference:https://blog.user.today/gmail-smtp-authentication-required/