如何更改 postfix 发件人地址?

Ner*_*nux 11 postfix

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

myorigin = /etc/mailname
Run Code Online (Sandbox Code Playgroud)

/etc/mailname包含:

gateblogs.com
Run Code Online (Sandbox Code Playgroud)

这是我的域。

我设法通过将我的主机名更改为我的域名来暂时解决我的问题。但是,我如何更改电子邮件的来源;当前邮件显示为root我希望它是别的东西。

小智 21

有相同的请求,终于在这里找到并回答 (会将其标记为重复)

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

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

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

address {
  email-domain somedomain.com;
};
Run Code Online (Sandbox Code Playgroud)

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

$ mail --config-help
Run Code Online (Sandbox Code Playgroud)

如果您觉得他的回答对您有帮助,请花点时间给他点赞。


小智 10

这个问题已经有五年了,但我只需要设置它。

问题:

我有一个 root@myserver 需要转发到我的 Office365。这要求我在服务器上的传出电子邮件始终将 FROM 设置为我的 356 帐户。

换句话说,当root@myserver发送电子邮件时,FROM 必须重写为myaccount@myoffice356domain.com.

回答:

这种重写可以通过/etc/postfix/generic文件来处理。

在 postfix/main.cf 中添加以下内容

smtp_generic_maps = hash:/etc/postfix/generic
Run Code Online (Sandbox Code Playgroud)

然后创建一个/etc/postfix/generic如下文件并根据需要添加其他用户。

root@localdomain myaccount@myoffice356domain.com
@localdomain myaccount@myoffice356domain.com
root@myserver  myaccount@myoffice356domain.com
userA@myserver myaccount@myoffice356domain.com
Run Code Online (Sandbox Code Playgroud)

运行 Postmap 并重新启动

sudo postmap /etc/postfix/generic
sudo systemctl restart postfix
Run Code Online (Sandbox Code Playgroud)

所有来自 和 的传出电子邮件root@myserveruserA@myserver自动将 FROM SMTP 字段作为 发送myaccount@myoffice356domain.com


gue*_*gue 9

Postfix 本身不会“设置”邮件的发件人地址(只要您还没有真正调整 postfix 配置)。
电子邮件的发件人地址标头由邮件客户端设置,它要求 postfix 传递邮件(Postfix 是一个MTA)。

因此,您看错了地方-据我了解您的问题。

您提到您正在使用该mail命令来测试您的配置。这个简洁的小命令 - 默认情况下 - 使用执行命令的系统用户名。在您的情况下,这似乎是 user root。尝试mail以不同的用户身份执行,您会看到 from 部分发生了变化。
并且由于该命令mail默认情况下不会将域部分附加到它交给 postfix 的邮件的“发件人”标题中,因此 postfix 会myorigin自动将该部分附加到root.

虽然mail不限制您不使用其他一些“发件人”电子邮件标头。您可以在 www 或 的手册页mail上阅读有关信息。还可以考虑使用sendmail.

请注意,在可配置性方面,postfix 是一头野兽。如果你真的了解它的架构和配置文件,你几乎可以完成你想要 postfix 做的所有事情。
但是,既然你问的是一个相当“新手”的问题,你可能还不想走那条路......


Bob*_*ger 6

你问了两次,但我会重复我的答案。在main.cf

myorigin = $mydomain
Run Code Online (Sandbox Code Playgroud)