邮箱将发件人名称显示为“Apache”,因为我自动发送的邮件是从Perl CGI程序发送的。如何将其更改为其他内容?
答案 0 :(得分:26)
您只需添加From:
标头即可。默认情况下没有。
echo "Test" | mail -a "From: Someone <someone@example.com>" other@example.com
您可以使用-a
添加任何自定义标头:
echo "Test" | mail -a "From: Someone <someone@example.com>" \
-a "Subject: This is a test" \
-a "X-Custom-Header: yes" other@example.com
答案 1 :(得分: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
以上是我的解决方案..只需用你想要的任何名字替换“Paula”,例如Johny Bravo ..可以在回复之前和之后添加任何额外的标题...只是确保你知道你的添加它们之前的标题语法....这对我来说很有效。
答案 2 :(得分:6)
您可以使用&#34; -r&#34;设置发件人地址的选项:
mail -r me@example.com -s ...
如果您还想在起始字段中包含真实姓名,可以使用以下格式
mail -r "me@example.com (My Name)" -s "My Subject" ...
答案 3 :(得分:3)
如果在电子邮件标头中未指定From:标头,则MTA使用当前用户的全名,在本例中为“Apache”。您可以在/ etc / passwd
中编辑完整的用户名答案 4 :(得分:1)
这取决于您所谈论的发件人地址。在收件人mailprogramm中发送的发件人地址是从“发件人:”页眉中提取的。可以很容易地从您的程序中设置。
如果您正在谈论SMTP信封发件人地址,则可以将-f参数传递给sendmail二进制文件。根据服务器配置,您可能无法使用apache用户执行此操作。
来自sendmail manpage的:
-f <address>
This option sets the address of the envelope sender of a
locally-generated message (also known as the return path).
The option can normally be used only by a trusted user, but
untrusted_set_sender can be set to allow untrusted users to
use it. [...]
答案 5 :(得分:1)
在Ubuntu 14.04上,这些建议都没有奏效。 Postfix将以登录系统用户作为发件人覆盖。有效的是此链接中列出的以下解决方案 - &gt; Change outgoing mail address from root@servername - rackspace sendgrid postfix
步骤进行:
1)确保在/etc/postfix/main.cf中设置:
smtp_generic_maps = hash:/etc/postfix/generic
2)echo'www-data yourusername@yourdomain.com'&gt;&gt; /等/后缀/通用
3)sudo postmap / etc / postfix / generic
4)sudo service postfix restart