如何让 postfix 从 发送电子邮件user@mydomain
而不是root@hostname
?即使在安装并按要求输入我的域后,它仍然会使用主机名而不是我提供的域发送。在我的main.cf
档案中
myorigin = /etc/mailname
并/etc/mailname
包含:
gateblogs.com
这是我的域名。
我已通过将主机名更改为域名来暂时解决我的问题。但是,我如何更改电子邮件的发件人;目前邮件显示来自root
“我希望它是其他内容”。
答案1
答案2
Postfix 本身不会“设置”邮件的发件人地址(只要您没有真正调整 postfix 配置)。
电子邮件的发件人地址标头由要求 postfix 传递邮件的邮件客户端设置(Postfix 是一个MTA)。
因此,据我了解你的问题,你看错了地方。
您提到您正在使用该mail
命令来测试您的配置。这个简洁的小命令默认情况下使用执行命令的系统用户名。在你的情况下,这似乎是 user root
。尝试mail
以不同的用户身份执行,您会看到 from 部分发生了变化。
并且由于该命令mail
默认情况下不会将域部分附加到它移交给 postfix 的邮件的“from”标头中,因此 postfix 会myorigin
自动将该部分附加到root
.
但这mail
并不限制您不使用其他“发件人”电子邮件标头。您可以在 www 或的手册页mail
。还可以考虑使用sendmail
。
请注意,postfix 在可配置性方面是一个野兽。如果你真正了解 postfix 的架构和配置文件,你几乎可以完成你想要 postfix 做的所有事情。
但既然你问的是一个相当“新手”的问题,你可能还不想走那条路......
答案3
这个问题已经有五年了,但我只需要设置它。
问题:
我有一个 root@myserver 需要转发到我的 Office365。这要求我在服务器上的传出电子邮件始终将 FROM 设置为我的 356 帐户。
换句话说,当root@myserver
发送电子邮件时,FROM 必须重写为[email protected]
.
回答:
这种重写可以通过/etc/postfix/generic
文件来处理。
在 postfix/main.cf 中添加以下内容
smtp_generic_maps = hash:/etc/postfix/generic
然后创建一个/etc/postfix/generic
如下文件并根据需要添加其他用户。
root@localdomain [email protected]
@localdomain [email protected]
root@myserver [email protected]
userA@myserver [email protected]
运行 Postmap 并重新启动
sudo postmap /etc/postfix/generic
sudo systemctl restart postfix
所有来自 和 的传出电子邮件root@myserver
将userA@myserver
自动将 FROM SMTP 字段作为 发送[email protected]
。
答案4
使用 gue 和 Bob Eager 的答案,我发现以下设置/etc/postfix/main.cf
也可以完成这项工作(在 Ubuntu 18.04 机器上):
# appending .domain is the MUA's job.
# append_dot_mydomain = no # --> this is the default setting
append_dot_mydomain = yes # --> Setting it to yes appends the domain to the hostname
它还解释了 gue 所说的:附加 .domain 是邮件用户代理的工作。通过将其设置为yes
我们将覆盖它。
所以,我的设置是:
[/etc/postfix/main.cf]
...
append_dot_mydomain = yes
...
myorigin = /etc/mailname
...
[/etc/mailname]
mydomain.example.com
尽管如此,这仍然不是正确的方式。毕竟,将其设置为yes
我们违反了“附加 .domain 是邮件用户代理的工作”这一原则
此外,我不确定为什么需要以这种方式配置它才能使其工作。我有另一台服务器(由其他人配置;一台 Debian 8.11 机器),它确实在主机名后面正确附加了域,即使 /etc/mailname
设置为域,并且使用append_dot_mydomain=no
.在该服务器上,它既适用于mailx
logcheck 发送的邮件,也适用于由 logcheck 发送的邮件