使用sendmail发送邮件时遇到了一些问题:每封邮件都是Content-Type: multipart/alternative
发送的,但我想知道只在Content-Type: text/plain
发送邮件。原因是因为GMAIL Web界面尊重RFC,我的消息显示的是最新的Content-type
,但由于我的消息不是HTML,显示效果很差。
我的bash脚本如下:
#!/bin/bash
SENDMAIL_BIN='/usr/sbin/sendmail'
FROM_MAIL_ADDRESS='noreply@plop.com'
FROM_MAIL_DISLAY='Test format mail'
RECIPIENT_ADDRESSES='me@plop.com'
MAIL_CMD="$SENDMAIL_BIN -f $FROM_MAIL_ADDRESS -F \"$FROM_MAIL_DISLAY\" $RECIPIENT_ADDRESSES"
(echo "Subject: Test format";echo -e "MIME-Version: 1.0\nContent-Type: text/plain;\n\n" && cat output.txt) | eval $MAIL_CMD
但是我的脚本似乎没有重写Content-Type
,而且它仍然是Content-type: multipart/alternative
(根据我的邮件的显示原始)。
NOTA :
<pre>
和</pre>
,但<pre>
部分邮件来源中Content-Type: text/html
的显示仍然很糟糕。 如果您有任何线索,或者您知道如何使用sendmail更改Content-Type
的顺序,请告诉我。
提前致谢
答案 0 :(得分:2)
我有非解决方案,而不是强迫我的邮件在text/plain
,我会在text/html
发送邮件,但我会添加{{1}标签打开和关闭我的输出文件...因为它现在位于<pre>
,text/html
标记不会显示为<pre>
这不是我除外但是有效。所以我以前的脚本就变成了:
<pre>
答案 1 :(得分:1)
尝试删除内容类型上的额外分号:
echo -e "MIME-Version: 1.0\nContent-Type: text/plain\n\n"
使用数组比使用eval解析字符串更好:
#!/bin/bash
SENDMAIL_BIN='/usr/sbin/sendmail'
FROM_MAIL_ADDRESS='noreply@plop.com'
FROM_MAIL_DISLAY='Test format mail'
RECIPIENT_ADDRESSES='me@plop.com'
MAIL_CMD=("$SENDMAIL_BIN" -f "$FROM_MAIL_ADDRESS" -F "$FROM_MAIL_DISLAY" "$RECIPIENT_ADDRESSES")
(echo "Subject: Test format";echo -e "MIME-Version: 1.0\nContent-Type: text/plain\n\n" && cat output.txt) | "${MAIL_CMD[@]}"