【问题标题】:Emailed output of 'cat' removes random spaces and newlines'cat' 的电子邮件输出会删除随机空格和换行符
【发布时间】:2016-05-04 15:57:25
【问题描述】:

第一次在这里发帖。
我有以下文件和内容:

linux$ cat file.txt    
line 1
line 2
line 3
line 4

我有以下代码:

Output=$(cat file.txt)
echo "$Output" | mail -s "[Test]" -a test.txt host@domain.com

出于调试目的,我将文件本身作为附件发送。 我遇到的问题是包含“cat file.txt”输出的电子邮件正文如下所示:

第 1 行
2号线
3 线 4

附件包含格式正确的“cat file.txt”输出,没有添加或删除字符、换行符、空格。

这可能是什么原因造成的? 感谢您的帮助!

【问题讨论】:

  • 直接从file.txt阅读是否也有同样的问题?即mail -s "[Test]" -a test.txt host@domain.com < file.txt
  • 你用什么来阅读邮件?某些电子邮件程序(例如 Outlook)具有“删除纯文本消息中多余的换行符”的选项,这可能会导致格式混乱。

标签: linux bash shell


【解决方案1】:

我认为您可能需要指定您的电子邮件内容应该以哪种格式发送。

UTF-8 是一个不错的选择,因为它几乎遍及全球。

这可能会有所帮助:

猫文件.txt | mail -s '$(echo -e "Test\nContent-Type: text/html")' -a test.txt host@domain.com

或使用字符集

猫文件.txt | mail -s '$(echo -e "Test\nContent-Type: text/html; charset="us-ascii")' -a test.txt host@domain.com

或者没有 UNIX 管道

mail -a '内容类型:文本/纯文本; charset="us-ascii"' foo@bar.com

更多信息可以在here找到。

这真的取决于您的邮件版本。

希望这会有所帮助

【讨论】:

  • 非常感谢dotslash,帮助很大!欣赏它
猜你喜欢
  • 2016-10-18
  • 1970-01-01
  • 2015-05-29
  • 2014-05-21
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
相关资源
最近更新 更多