ssmtp.conf 中的密码中哪些字符是非法的?

ssmtp.conf 中的密码中哪些字符是非法的?

我正在运行带有 sendmail 的 ssmtp 包的 Ubuntu Server 16.04。我读过种类地点您不能在密码中使用“特殊”字符,而且我发现我确实无法转义或引用密码。我只能在 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 ...

希望它有帮助。

相关内容