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

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

我正在執行 Ubuntu Server 16.04 以及 sendmail 的 ssmtp 套件。我讀過種類地方你不能在密碼中使用“特殊”字符,而且我發現我確實無法轉義或引用密碼。我只能驗證 ssmtp.conf 中的字母數字密碼才能正常工作,但我在任何地方都找不到此記錄。我的問題是,密碼允許/禁止的字元是什麼?

或者說,有沒有其他的方法可以逃脫呢?我嘗試過反斜線、單引號和雙引號都無濟於事。

謝謝

答案1

似乎列出了許多未解決的錯誤這裡關於AuthPass指令中存在問題的字元:

  • 錯誤報告768129:哈希/井號字符#
  • 錯誤報告463196: 等號=和冒號:字符

我不知道 ssmtp 是否會出現這種情況,但通常在密碼中使用的不良字元是空格、擴展 ASCII:è é ê ë 等和 UNICODE。堅持a-z A-Z 0-9 .-並讓密碼更長而不是更複雜。

答案2

查看read_config()方法883線目前 blob af4d1e58d28fa9450bfc6a80fbacc75ca28c2220 的看起來好像等號=或井號哈希符號#會導致它默默地繼續並跳過解析配置文件的該行。

    /* Make comments invisible */
    if((p = strchr(buf, '#'))) {
        *p = (char)NULL;
    }

    /* Ignore malformed lines and comments */
    if(strchr(buf, '=') == (char *)NULL) continue;

我仍然希望看到有關該主題的權威答案或對文檔的明確參考。

答案3

您可以使用以下解決方法:

  • 直接在命令列參數中輸入密碼
ssmtp -ap "Hash#Password" ...
  • 或將密碼放入環境變數中。
ssmtp -ap $PASSWD ...

希望有幫助。

相關內容