用 sendmail 发送邮件时我遇到了一个小问题:每封邮件都是用 Content-Type: multipart/alternative
发送的但我想知道只在 Content-Type: text/plain
中发送我的邮件.原因是因为 GMAIL 网页界面遵守 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
(根据我邮件的显示原文)。
注意:
<pre>
和 </pre>
但是 <pre>
的显示仍然很糟糕在邮件的来源中Content-Type: text/html
部分...如果您有任何线索或者知道如何更改 Content-Type
的顺序使用 sendmail 让我知道。
提前致谢
最佳答案
我有一个非解决方案,而不是强制我的邮件在 text/plain
中,我会在text/html
发邮件但我会添加 <pre>
标签打开和关闭我的输出文件...因为它现在在 text/html
, <pre>
标记未显示为 <pre>
这不是我排除的,但它有效。所以我之前的脚本简单地变成了:
#!/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/html;\n" && echo '<pre>' && cat output.txt && echo '</pre>') | eval $MAIL_CMD
https://stackoverflow.com/questions/18233696/