在 Ubuntu 服务器上设置 Postfix 和 Apache/PHP。现在邮件已使用正确的域名正常发送,但本地部分显示名称始终为“www-data”,因为我假设 Postfix 默认使用用户的名称。
在 php.ini 文件中,我能够将 更改为 ,sendmail_path
但电子邮件显示名称仍然显示为 www-data 。 我尝试以几种不同的方式指定显示名称,但这些方法都被忽略了,邮件仍然以 www-data 的形式发出。sendmail_path = "/usr/sbin/sendmail -t -i -f [email protected]"
我希望能够默认地让任何缺少发件人、返回路径等标题的邮件以 形式发出,但我不确定这是否可能。"Example Support" <[email protected]>
答案1
据我理解,您试图设置发件人的全名,而不是地址(或除了地址之外)。一般来说,Postfix 并不关心这是什么,您可以在 MUA(在本例中是某个 php 脚本)生成邮件头时设置它。我不熟悉 php 编码,但看起来这在PHP mail() 函数。
但是如果你调用 postfix 的sendmail
二进制文件来发送消息,你可以使用它-F "Support System"
来做你想做的事情。也许这必须在mail.force_extra_parameters
设置中 — 我不太清楚 php 在这里是如何工作的。(大多数情况下,无论如何这都是错误的做法。)
答案2
添加你的main.cf
smtp_generic_maps = hash:/etc/postfix/generic
并创建一个名为 /etc/postfix/generic 的文件,内容如下:
www-data [email protected]
运行postmap /etc/postfix/generic
编译并重新加载 postfix。您的发送名称现在是[电子邮件保护]
答案3
您应该做最后一件事来完成@Dom 忘记的进程。运行以下命令:
$ postmap /etc/postfix/generic
generic.db
此命令将在 /postfix 目录中创建文件。
如果不这样做,您可能会遇到以下错误输出:
fatal: open database /etc/postfix/generic.db: No such file or directory
答案4
尝试这个
/etc/apache2/环境变量
用户 ${APACHE_RUN_USER} 组 ${APACHE_RUN_GROUP}