使用linux mail命令自动发送邮件时如何更改发件人姓名(而不是电子邮件地址)?

the*_*now 24 linux email mail-sender

邮箱将发件人名称显示为"Apache",因为我自动发送的邮件是从Perl CGI程序发送的.如何将其更改为其他内容?

sam*_*var 30

你只需要添加一个From:标题.默认情况下没有.

echo "Test" | mail -a "From: Someone <someone@example.com>" other@example.com
Run Code Online (Sandbox Code Playgroud)

您可以使用-a以下方法添加任

echo "Test" | mail -a "From: Someone <someone@example.com>" \
                   -a "Subject: This is a test" \
                   -a "X-Custom-Header: yes" other@example.com
Run Code Online (Sandbox Code Playgroud)

  • 这没用.抱歉. (6认同)

小智 9

mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt
Run Code Online (Sandbox Code Playgroud)

以上是我的解决方案..只需用你想要的任何名称替换"Paula",例如Johny Bravo ..可以在回复之后和之前添加任何额外的标题...只是确保你知道你的标题语法之前添加它们....这对我来说很有效.


Raf*_*shi 6

您可以使用"-r"选项设置发件人地址:

mail -r me@example.com -s ...
Run Code Online (Sandbox Code Playgroud)

如果您还想在起始字段中包含您的真实姓名,可以使用以下格式

mail -r "me@example.com (My Name)" -s "My Subject" ...
Run Code Online (Sandbox Code Playgroud)


小智 5

如果电子邮件标头中未指定 From: 标头,则 MTA 使用当前用户的全名,在本例中为“Apache”。您可以在 /etc/passwd 中编辑完整的用户名

  • +1谢谢我会检查一下。 (2认同)