当body包含“:”时,使用sendmail邮件的Ksh脚本失败

时间:2013-10-04 14:39:14

标签: escaping sendmail ksh

我在Solaris上的sendmail 8.14.4中遇到了一个奇怪的行为。

我使用ksh脚本成功发送邮件如下:

( echo "Subject: Test"
echo "Date: 20131004"
) | sendmail -f me@somewhere.com -t coworker@somewhere.com

但没有内容。

如果我使用:

( echo "Subject: Test"
echo "Date 20131004"
) | sendmail -f me@somewhere.com -t coworker@somewhere.com

有内容......

为什么会阻止内容?

感谢您的回答:-)!

编辑1:好的,我找到了一种解决方法,将内容类型设置为" plain / html"并添加两个html节点..它的工作原理。但这是一种解决方法......

1 个答案:

答案 0 :(得分:2)

格式错误的Date标头违反了电子邮件格式;传统的Sendmail通常会认为文本是消息内容,并将其放在正文中。

您的问题似乎是基于错误的假设,即标题和正文是相邻的。正确地说,标题和正文之间需要一个空行。在第一种情况下,Date:行虽然无效,但可能会被接受到标题中。

( echo Subject: Test
  echo
  echo Date: 20131004 ) |
sendmail -oi recipient@example.com

甚至更好

sendmail -oi recipient@example.com <<'HERE'
Subject: Test

Date: 20131004
HERE