如何更改 postfix 发件人地址?

如何更改 postfix 发件人地址?

如何让 postfix 从 发送电子邮件user@mydomain而不是root@hostname?即使在安装并按要求输入我的域后,它仍然会使用主机名而不是我提供的域发送。在我的main.cf档案中

myorigin = /etc/mailname

/etc/mailname包含:

gateblogs.com

这是我的域名。

我已通过将主机名更改为域名来暂时解决我的问题。但是,我如何更改电子邮件的发件人;目前邮件显示来自root“我希望它是其他内容”。

答案1

有同样的要求,终于找到并回答了这里 (会将其标记为重复项)

askubuntu 的用户 Rustyx 回答了这个问题:

要在 Mailutils 中使用主机名以外的本地域:

创建文件/etc/mailutils.conf包含以下内容:

address {
  email-domain somedomain.com;
};

您可以查看还可以配置哪些内容mailutils.conf

$ mail --config-help

请花点时间点赞他的回答如果你觉得它对你有帮助。

答案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@myserveruserA@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.在该服务器上,它既适用于mailxlogcheck 发送的邮件,也适用于由 logcheck 发送的邮件

相关内容