使用 Linux 邮件向 Windows Outlook 发送电子邮件时丢失行尾

使用 Linux 邮件向 Windows Outlook 发送电子邮件时丢失行尾

当我使用“邮件”从 Linux 向 Windows 发送电子邮件时,我丢失了行尾。

我尝试了所有方法,将多行“正文”文本设置为变量,然后将其导入邮件,使用文本文件的 here-document 样式输入到邮件中。无论哪种方式,当电子邮件到达 Windows Outlook 时,我都会丢失所有行尾。

releasenotes=$(tail -n5 ./ReleaseNote)
echo -e "$releasenotes" | mail -s "$ALERT_EMAIL_SUBJECT" "$ALERT_EMAIL_ADDR"

我可以确认 ./ReleaseNote 文件确实有行尾。

我尝试进行 unix2dos 转换,但电子邮件到达 Outlook 时带有 .bin 附件。

有人能帮忙吗?今晚我已经花了好几个小时在这上面了。

答案1

使用 sed 删除 \r 字符:

echo -e "$releasenotes" | sed 's/\r//' | mail -s "$ALERT_EMAIL_SUBJECT" "$ALERT_EMAIL_ADDR"

答案2

如果可以向收件人建议修复,则可以使用 Outlook 中的设置:

对于 Outlook 2010 及更高版本:

  1. 打开 Outlook。
  2. 在“文件”选项卡上,选择“选项”。
  3. 在选项对话框中,选择邮件。
  4. 在邮件格式部分中,清除删除纯文本邮件中的多余换行符复选框。
  5. 选择“确定”。

对于 Outlook 2007 或更早版本:

  1. 打开 Outlook。
  2. 在“工具”菜单上,选择“选项”。
  3. 在“首选项”选项卡上,选择“电子邮件选项”按钮。
  4. 清除“删除纯文本消息中的多余换行符”复选框。
  5. 选择“确定”两次。

https://docs.microsoft.com/en-us/outlook/troubleshoot/message-body/line-breaks-are-removed-in-posts-made-in-plain-text

相关内容