【问题标题】:Unix mail automatically sending my message as an attachmentUnix 邮件自动将我的邮件作为附件发送
【发布时间】:2015-03-18 20:14:42
【问题描述】:

我有一个看起来像这样的邮件命令:

sh ~/filter.sh ~/build/site_build.err | mail -s "Site updated." me\@site.com

bash 脚本有一些命令,主要是 grep,用于过滤标准错误。当我们的构建过程完成时,它会将过滤后的内容发送给我。

以前是在邮件正文中发送文件内容,但现在它作为附件发送,我不想要。

当我再次删除它在邮件正文中发送给我的大部分文本时,我推断这与邮件大小有关 - 这是正确的吗?

无论如何,无论如何,如何防止 Unix 将消息内容作为附件发送?

谢谢!

【问题讨论】:

    标签: email unix


    【解决方案1】:

    仍然不确定有多少事情会导致mail 显然将输入作为附件发送。但在许多 Linux 发行版中,mailheirloom mailx 的别名。如果其中有任何不可打印的字符,就会对其输入进行编码。

    一旦发现非标准字符,它就会在邮件中添加以下标题:

    Content-Type: application/octet-stream
    Content-Transfert-Encoding: base64
    

    并且邮件的文本实际上是基于 64 位编码的。这不是真正的附件,但许多邮件阅读器将此类邮件视为带有未命名附件的空正文。

    如果您的 LANG 环境变量声明了一个可以使用非 7 位字符(éèûôüö ...)的语言环境,邮件似乎足够聪明地声明一个扩展字符集(对于 fr 语言环境是 ISO-8859-1)并引用 -可打印的编码。因此,即使邮件中有(至少是西欧)非 7 位 ASCII 字符,只要没有控制字符,邮件也应该可以正常发送。

    替代方法是从filter.sh 的输出中过滤所有不可打印的字符,最后机会的解决方案是不使用邮件并直接使用sendmail。

    (Ref : an answer of mine to an other post but that one涉及 java)

    【讨论】:

    • 我认为这是我需要的答案。我需要检查打印的字符集,但会假设这会导致问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多