我的 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 中的页面,但可能也适用于其他页面。
根据这些报告日志,包含字符=、:或的行#要么被完全跳过,要么以删除这些字符右侧密码部分的方式进行处理。
换句话说,目前还没有办法在线上“转义”这些特殊字符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
答案在很大程度上取决于您输入或提交密码的上下文。在某些格式中,您可以将密码括在""
' 中,而在其他格式中,您需要转义违规字符。这转义字符,在程序、shell、操作系统等之间有所不同。在 Windows 批处理脚本中,转义是,^
而在某些 Linux 或终端情况下,转义是\
。
答案4
尝试转义第二个等号:
AuthPass=1234+\=5678