bash - 使用 sendmail 强制内容类型

用 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 (根据我邮件的显示原文)。

注意:

  • 我的 output.txt 中没有什么特别的(只有来 self 的应用程序的日志行)。
  • 我尝试了一个 gruik hack:放一个 <pre></pre>但是 &lt;pre&gt; 的显示仍然很糟糕在邮件的来源中Content-Type: text/html部分...

如果您有任何线索或者知道如何更改 Content-Type 的顺序使用 sendmail 让我知道。

提前致谢

最佳答案

我有一个非解决方案,而不是强制我的邮件在 text/plain 中,我会在text/html发邮件但我会添加 <pre>标签打开和关闭我的输出文件...因为它现在在 text/html , <pre>标记未显示为 &lt;pre&gt;

这不是我排除的,但它有效。所以我之前的脚本简单地变成了:

#!/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/

相关文章:

hadoop - 以 hdfs 作为接收器的水槽中的 NoSuchMethod 错误

.net - 定期 - 无法将索引 Y 处的 Unicode 字符 X 转换为指定的代码页

ruby-on-rails - "heroku logs"给我 "Not found"

git - 如何搜索 git 历史(镐),但不包括重命名

Magento - 如何为处理订单启用取消按钮(已创建发票)

asp.net-mvc-4 - 使用 ADFS 登录创建角色成员资格

uiview - UIView 标签属性的最大值

r - 在 R : legend and lines 中用线密度代替颜色绘制 map

canvas - 如何调试 CORS 错误

c# - 如何获取任何文件/文件夹的系统图标