当我尝试使用cat和sendmail读取文件并发送电子邮件时, 我收到的电子邮件在文本中的字母之间有额外的空格。
我的代码:
export MAILTO="sa@y.com"
export SUBJECT="mydomain PREPROD MONITOR AT ${DATE}"
export BODY1="/usr/local/oracle/wls1036/domains/mydomain/bin/mydomainmonitor/mydomainmonitor.log"
(
echo "To: $MAILTO"
echo "Subject: $SUBJECT"
echo "MIME-Version: 1.0"
echo "Content-Type:text/html"
echo "Content-Disposition: inline"
cat $BODY1
) | /usr/sbin/sendmail -i $MAILTO
请让我知道为什么添加这些额外的空格。当我查看文件时,我看不到任何空格。
答案 0 :(得分:1)
如果文件有长行,Sendmail需要破解它们。
确保数据完整性的透明方法是使用简单的MIME包装器。您可能希望使用正确的MIME感知MUA来拼凑格式正确的消息,但手动执行它基本上相当于添加Content-Transfer-Encoding: quoted-printable
标头,并相应地对正文进行QP编码。
MAILTO="sa@y.com"
SUBJECT="mydomain PREPROD MONITOR AT ${DATE}"
BODY1="/usr/local/oracle/wls1036/domains/mydomain/bin/mydomainmonitor/mydomainmonitor.log"
( cat <<____HEADERS
To: $MAILTO
Subject: $SUBJECT
MIME-Version: 1.0
Content-Type:text/html
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
____HEADERS
# Really quick and dirty; does not implement full QP
perl -pe 's/=/=3D/g;s/(.{72})/$1=\n/g' "$BODY1"
) | /usr/sbin/sendmail -i $MAILTO
答案 1 :(得分:0)
我使用新行char将输出到我的日志文件分成多行。 现在发送邮件正确地发送电子邮件,没有任何额外的空格。