ssmtp密碼中的特殊字符

ssmtp密碼中的特殊字符

我的 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

這些錯誤報告專門針對ssmtpDebian 中的頁面,但可能也適用於其他頁面。

  • Debian Bug 報告日誌 -#463196: ssmtp 無法解析包含 '=' 或 ':' 的 AuthPass
  • Debian Bug 報告日誌 -#768129: ssmtp: 與「#」相同的問題

根據這些報告日誌,包含字元=:、 或 的行#要么被完全跳過,要么以刪除這些字元右側的密碼部分的方式進行處理。

也就是說,目前還沒有辦法「轉義」這些特殊字元AuthPass


附帶說明一下,有許多設備(例如無線家用印表機)需要在數字鍵盤上輸入密碼,類似於電話上使用的密碼。這些設備上可以使用一些特殊字符,但許多特殊字符無法選擇。

對於這種情況,您(不幸的是)被迫調整設備的密碼。

由字母和數字組成的較長密碼優於包含更多標點符號的較短密碼。


這個問題在以下頁面上也被提出並且得到了很好的答案:

ssmtp.conf 中的密碼中哪些字元是非法的?

答案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

相關內容