我想在 Linux 上使用命令行发送电子邮件,所以我选择了 sendEmail(一个轻量级的命令行 SMTP 电子邮件客户端)。但是,我发现句首的句点 (.) 会被忽略,这让我很困惑。
-m MESSAGE 消息正文
我的命令:
sendEmail -f sender@example.com -t receiver@example.com -u "Test mail" -s smtp.example.com -xu sender@example.com -xp sender_password -m ".Hello\n..Hello\nHello.world" -o tls=no
我要显示的是:
.Hello
..Hello
Hello.world
但结果是:
Hello
.Hello
Hello.world
感谢一百万。
最佳答案
这是 sendEmail
客户端中的一个错误。在 SMTP 中,一行只包含一个句点 .
用于指示消息的结尾(SMTP 中的 DATA 段)。为避免在消息包含具有单个句点的行时意外终止传输,在消息传输之前,必须在所有以句点开头的行上添加一个额外的句点;并在收到时删除。适当的 SMTP 客户端的任务就是处理这个问题。这显然是客户端的错误行为。
要解决此错误,请添加一个额外的句号。
有关详细信息,请参阅 RFC5321 , 第 4.1.1.4 和 4.5.4 节。
关于linux - 为什么在 Linux 上的 SendEmail 中句首的句号会被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51466169/