当我使用“邮件”从 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 及更高版本:
- 打开 Outlook。
- 在“文件”选项卡上,选择“选项”。
- 在选项对话框中,选择邮件。
- 在邮件格式部分中,清除删除纯文本邮件中的多余换行符复选框。
- 选择“确定”。
对于 Outlook 2007 或更早版本:
- 打开 Outlook。
- 在“工具”菜单上,选择“选项”。
- 在“首选项”选项卡上,选择“电子邮件选项”按钮。
- 清除“删除纯文本消息中的多余换行符”复选框。
- 选择“确定”两次。