我的 Gmail 密碼中有+
和字元。=
如何配置ssmtp
以避免授權錯誤?
我的/etc/ssmtp/ssmtp.conf
:
[email protected]
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=1234+=5678
FromLineOverride=YES
UseTLS=YES
hostname=skynet
我該如何運行ssmtp
:
$ echo "email content" | mail -s "email subject" [email protected]
send-mail: Authorization failed (535 5.7.1
http://support.google.com/mail/bin/answer.py?answer=14257
hz16sm4385885lab.6)
答案1
AuthPass
處理文件中的行上的特殊字元仍然存在許多未解決的錯誤/etc/ssmtp/ssmtp.conf
:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&src=ssmtp#_0_3_4
這些錯誤報告專門針對ssmtp
Debian 中的頁面,但可能也適用於其他頁面。
- Debian Bug 報告日誌 -#463196: ssmtp 無法解析包含 '=' 或 ':' 的 AuthPass
- Debian Bug 報告日誌 -#768129: ssmtp: 與「#」相同的問題
根據這些報告日誌,包含字元=、:、 或 的行#要么被完全跳過,要么以刪除這些字元右側的密碼部分的方式進行處理。
也就是說,目前還沒有辦法「轉義」這些特殊字元AuthPass
。
附帶說明一下,有許多設備(例如無線家用印表機)需要在數字鍵盤上輸入密碼,類似於電話上使用的密碼。這些設備上可以使用一些特殊字符,但許多特殊字符無法選擇。
對於這種情況,您(不幸的是)被迫調整設備的密碼。
由字母和數字組成的較長密碼優於包含更多標點符號的較短密碼。
這個問題在以下頁面上也被提出並且得到了很好的答案:
答案2
您可以使用以下解決方法:
feed the password directly in the command line argument
ssmtp -ap「哈希#密碼」...
alternatively put the password in an environment variable.
ssmtp -ap $PASSWD ...
希望有幫助。
答案3
答案很大程度取決於您輸入或提交密碼的上下文。在某些格式中,您可以將密碼括在""
's 中,而在其他格式中,您需要轉義有問題的字元。這轉義字符^
,在程式、shell、作業系統等之間有所不同\
。
答案4
試著轉義第二個等號:
AuthPass=1234+\=5678