25

如何使用 linux mail 命令在电子邮件中插入新行?

echo "Hi xxx, would you tell me something?\\n thanks!\\n -xxx" | mail -s "subject" xxx@gmail.com

电子邮件显示文字'\n',而不是换行符,如何解决?

4

5 回答 5

42

尝试使用echo -e

echo -e "Hello \n World"

您可以man echo从命令行键入以阅读更多信息。

于 2012-09-27T05:23:11.320 回答
16

使用mailx,如果您将电子邮件发送给 Outlook 用户,您可以在每行的开头添加 2 个空格。

{ echo "Hi xxx, would you tell me something" ; echo "thanks!" ; echo "-xxx" } | sed 's/^/  /g' | mailx -s "subject" xxx@domain.com
于 2014-02-28T15:18:38.730 回答
3

使用 Bash 3.2 在 MacOS 上测试

bash-3.2$ mail -s "$subject" TestEmail@gmail.com <<< $(printf "%s\r\n%s\n" "This is Line One"  "This is Line Two")

这是收到的电子邮件的 gmail 屏幕截图

在此处输入图像描述

于 2019-12-12T16:24:45.177 回答
3

使用邮件命令时,接受的答案对我不起作用,我必须使用

\r

我的整个命令是

mail -s "SUBJECT" -aFrom:"from@sdf.com "to@sdfd.com" <<< $( echo -e "Line1\rLine2")
于 2016-11-14T17:22:52.353 回答
2

我遇到了这个问题,并通过用引号将我输入的变量括起来解决了这个问题mailx

我从 ps ie 的进程列表开始list="$(ps |grep some_process)"

然后,当我尝试按如下方式邮寄时,换行符被删除了:

echo $body | mailx -s "${subject}" recipient@someplace.com

但是,只需$body用引号括起来就可以保留换行符:

echo "$body" | mailx -s "${subject}" recipient@someplace.com
于 2017-09-21T05:09:00.587 回答