从文本文件发送电子邮件时,Ksh脚本会删除换行符

时间:2018-02-15 04:26:29

标签: unix ksh mailx

我有一个脚本,它发送和发送电子邮件,从文本文件($ list_file)中读取列表。但是,当我收到电子邮件时,我看到换行符被移除,列表显示在一行中。如何让它显示每个条目对应一行?

电子邮件通知:

File Transfer Listing

file1.csv file2.csv file3.csv

脚本:

echo "File Transfer Listing" > $mail_file
echo "" >> $mail_file
echo `cat $list_file` >> $mail_file
echo "" >> $mail_file
mailx -s "File Listing" myemail@email.com < $mail_file

$ list_file的内容:

file1.csv
file2.csv
file3.csv

$ mail_file的内容:

File Transfer Listing

file1.csv
file2.csv
file3.csv

1 个答案:

答案 0 :(得分:0)

行为不是由生成电子邮件的ksh代码引起的,而是Outlook的一项功能。 Outlook试图美化电子邮件。
当您在Outlook中打开电子邮件时,您会看到一条消息,表明已删除了额外的换行符。当您始终邮寄到一个客户端时,您可以使用工具配置Outlook - &gt;选项 - &gt;电子邮件选项 - &gt;删除纯文本消息中的额外换行符 解决方法是在每行的末尾包含一个空的空格字符。 试试这个:

sed 's/$/ /' "${mail_file}" | mailx -s "File Listing" myemail@email.com