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 错误报告日志 -#463196:ssmtp 无法解析其中带有“=”或“:”的 AuthPass
  • Debian 错误报告日志 -#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

答案在很大程度上取决于您输入或提交密码的上下文。在某些格式中,您可以将密码括在""' 中,而在其他格式中,您需要转义违规字符。这转义字符,在程序、shell、操作系统等之间有所不同。在 Windows 批处理脚本中,转义是,^而在某些 Linux 或终端情况下,转义是\

答案4

尝试转义第二个等号:

AuthPass=1234+\=5678

相关内容