ssmtp密码中的特殊字符


14

我的gmail密码中有+=字符。如何配置ssmtp以避免授权错误?

我的/etc/ssmtp/ssmtp.conf

root=username@gmail.com
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" otherMail@gmail.com
send-mail: Authorization failed (535 5.7.1
http://support.google.com/mail/bin/answer.py?answer=14257
hz16sm4385885lab.6)

1
错误发生在哪个程序中?请给我们一些背景。简短是件好事,但这没什么可做的。
用户99572在2012年

我为这个问题附上了更多信息。
乔西(Jofsey)2012年

你有没有尝试单引号,这应该为你工作
Suyash耆那教

该错误位于github.com/ajwans/sSMTP/blob/master/ssmtp.c#L913,我记得我在2010年提交了一个补丁……没人在乎。我想这是一个功能,而不是一个错误!
David S.

Answers:


5

文件中的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中的密码中哪些字符非法?


@Hugo对于另一个问题,这可能是一个很好的话题:superuser.com/help/how-to-ask如果您找到了自己的东西或发表了自己的东西,请随时在此处留下其他评论链接。
乔纳森·

维护者应考虑像在其他软件包中一样将配置文件条目视为Urlencoded。
老盖泽

1

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

feed the password directly in the command line argument

ssmtp -ap“ Hash#Password” ...

alternatively put the password in an environment variable.

ssmtp -ap $ PASSWD ...

希望能有所帮助。


-1

答案很大程度上取决于您输入或提交密码的环境。在某些格式中,您可以将密码括在中"",在另一些格式中,您需要转义有问题的字符。这个转义字符在程序,shell,操作系统等之间是不同的。在Windows批处理脚本中,转义是^在某些Linux或终端机情况下的转义\


1
我试图将密码存储在1234\+\=5678表单中,但出现相同的错误。
乔夫西2012年

1
上下文是ssmtp程序包,而不是SMTP。
肯尼·埃维特

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.