将 Postfix 地址的默认值从 www-data 更改为其他内容

Wuc*_*cka 14 php postfix sendmail apache-2.2

在 Ubuntu 服务器上设置 Postfix 和 Apache/PHP。邮件现在可以使用正确的域名发送出去,但本地部分显示名称始终为“www-data”,因为我假设 Postfix 默认使用用户名。

在 php.ini 文件中,我能够更改为sendmail_pathsendmail_path = "/usr/sbin/sendmail -t -i -f support@example.com"但电子邮件显示名称仍显示为 www-data 。我尝试以几种不同的方式指定显示名称,但这被忽略了,邮件仍然作为 www-data 发出。

我希望能够做的是默认情况下,将任何缺少 from、return-path 等的邮件作为 发送出去"Example Support" <support@example.com>,但我不确定这是否可能。

Dom*_*Dom 14

添加在您的 main.cf

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

并创建一个名为 /etc/postfix/generic 的文件:

www-data support@example.com
Run Code Online (Sandbox Code Playgroud)

运行postmap /etc/postfix/generic以编译并重新加载后缀。您的发送名称现在是 support@example.com

  • 这没有效果。 (4认同)

mat*_*tdm 7

据我了解,您正在尝试设置发件人的全名,而不是地址(或者,除了地址之外)。一般来说,Postfix 并不关心那是什么,当你的 MUA(在这种情况下,一些 php 脚本)生成消息头时,你设置它。我不熟悉 php 中的编码,但看起来在PHP mail() 函数的文档中对此进行了解释。

但是如果你调用 postfix 的sendmail二进制文件来发送消息,你可以用-F "Support System"它来做你想做的事。也许这必须在mail.force_extra_parameters设置中 - 我不太清楚 php 在这里是如何工作的。(大多数情况下,无论如何这样做都是错误的。)


小智 5

您应该做最后一件事来完成@Dom 忘记的过程。运行以下命令:

$ postmap /etc/postfix/generic

此命令将generic.db在 /postfix 目录中创建文件。

如果不这样做,您可能会面临以下错误输出:

fatal: open database /etc/postfix/generic.db: No such file or directory