許多網站上面會有聯絡表單或是訂購表單的程式,從前的作法是使用者填寫完畢後按「發送」,瀏覽器會呼叫電腦內與

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。

點此看 stackflow 的討論串

 


 

現在科技日新月異,不只有電子郵件通知,還有簡訊通知,或是行動裝置 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 一樣才能寄。

20150111-1751  

3、QQ 信箱一樣有信件寄送數量之類的限額,天底下沒有白吃的午餐。

4、跟表單程式沒啥關係,是有一次客人反映 QQ 企業信箱收不到信,於是順便測試了一下,在信中加入以下「退支咒」,

使寄件人是通訊錄內的人,信也會直接到 QQ 的垃圾郵件匣去,完全不會進收件匣。

 

 

Reference:https://blog.user.today/gmail-smtp-authentication-required/

arrow
arrow
    文章標籤
    [Google Gmail]
    全站熱搜

    mitblog 發表在 痞客邦 留言(0) 人氣()