Ssmtp
sSMTP 疑難解答:授權失敗
我的要求是:
- 從終端發送電子郵件(為了批處理)
- 將 pdf 文件附加到該電子郵件(除水印外,所有收件人的 pdf 文件都是相同的)
- 指定回复地址 (myusername@gmail.com)
我已經嘗試過“通過 gmail 發送單行消息的最簡單答案是使用 ssmtp”和幾種變體,並不斷得到:
筆記型電腦 sSMTP
$$ 19226 $$: 授權失敗 (535 5.7.8 https://support.google.com/mail/?p=BadCredentials d13sm3920147qkj.27 - gsmtp)
Google設置:
- 啟用 IMAP
- 允許安全性較低的應用已開啟
對於我嘗試的每個
ssmtp.conf
設置,我之前都完成了DisplayUnlockCaptcha :$echo "Testing...1...2...3" | ssmtp myusername@gmail.com
僅查看所述執行緒
/etc/ssmtp/ssmtp.conf
,對於應該如何設置沒有達成共識:
mailhub=smtp.gmail.com:587
對比 465UseTLS=YES
vsUseSTARTTLS=Yes
(或兩者兼而有之?)hostname=localhost
與預設放置的任何內容(在我的情況下,laptop
)有人可以提出一個建議來解決這個問題,並可能完整地粘貼一個工作的conf文件嗎?
在2017的一個執行緒中有一個聲明,即:
您不能使用普通密碼使用外部應用程序,您必須訪問https://security.google.com/settings/security/apppasswords
是這樣嗎?(我做不到)
有哪些選擇?
PS:
- 作業系統:Linux Mint 19 Tara
- ssmtp 已通過升級/更新之前的全新安裝進行測試
- 幾年前,我能夠使用相同的作業系統(早期版本)發送電子郵件
- 為了確保 AuthPass 的值是正確的,我用它來手動登錄我的 google 帳戶。
使用以下 Google 設置:
IMAP enabled Allow less secure apps is ON
解決方案是設置一個app-password:
注意: 在 Google 設置的應用程序密碼要求首先為您嘗試為其配置 ssmtp 的帳戶啟用雙重身份驗證。
/var/ssmtp/ssmtp.conf:
# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=postmaster # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com # Modified 06/27/2020: # mailhub=mail root=mysusername@gmail.com AuthUser=mysusername@gmail.com #AuthPass=[usual gmail pwd] # aint' gonna work AuthPass=[pwd generated by https://myaccount.google.com/apppasswords] #UseTLS=YES #mailhub=smtp.gmail.com:465 UseSTARTTLS=Yes mailhub=smtp.gmail.com:587 # Where will the mail seem to come from? #rewriteDomain= # The full hostname hostname=laptop # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES
在終端上:
$echo "Testing...1...2...3" | ssmtp recipient@gmail.com
PS:
- 如果沒有解釋,我看不到投票否決的用處。
- 對於問題(附件)中所述的第二個要求,
mutt
就像一個魅力。