从 sendmail 发送带标头的电子邮件

Jus*_*tin 5 email sendmail smtp-headers

我正在尝试发送一封电子邮件sendmail,但我需要指定一些标头(发件人、内容类型、主题)。这是我当前正在运行的命令:

echo "Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here" | sendmail -f do-not-reply@mydomain.com admin@mydomain.com

问题是没有设置标题。我的格式正确吗?

cyb*_*x86 4

您需要echo与“e”参数一起使用。

-e  
    启用对每个字符串中以下反斜杠转义字符的解释:  
      \n 新行  
      \r 回车

如果您查看使用命令发送邮件的结果,您会看到以下内容:

Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here
Run Code Online (Sandbox Code Playgroud)

(它实际上像上面一样显示为一行,包括“特殊字符”)

应用上面的轻微修改可以让您的代码正常工作:

echo -e "Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here" | sendmail -f do-not-reply@mydomain.com admin@mydomain.com
Run Code Online (Sandbox Code Playgroud)