如何在使用vhosts时配置apache / php / postfix网站电子邮件?

我有一个LAMP网络服务器,配置为多个网站服务。 每个虚拟主机都有各种PHP应用程序,主要是Wordpress。

当用户注册Wordpress站点时,PHP会将电子邮件发送到postfix,然后发送到接收者。 问题是postfix使用/ etc / hostname的内容向远程服务器标识自己,而/ etc / hostname不是完全限定的域名。 某些邮件服务器拒绝此邮件并且邮件会被退回。

此外,返回路径被设置为虚拟主机域之一,似乎是随机的。

我可以将/ etc / hostname设置为其中一个网站域名,但是来自其他网站的电子邮件在标头中会有一个错误的服务器,这不会修复返回路径问题。

可能相关,apache2在启动时说“无法确定服务器的完全限定域名”。

如何解决此问题,以便每个网站都可以发送电子邮件而不会泄露服务器上托管的其他网站?

示例错误:

Oct 15 20:29:32 Ubuntu-1204-precise-64-minimal postfix/smtp[17214]: CD087E00DF6: to=, relay=spool.mail.gandi.net[217.70.184.6]:25, delay=0.29, delays=0.12/0/0.09/0.07, dsn=5.5.2, status=bounced (host spool.mail.gandi.net[217.70.184.6] said: 504 5.5.2 : Helo command rejected: need fully-qualified hostname (in reply to RCPT TO command)) 

我现在已经在/ etc / hosts和/ etc / hostname中设置了FQDN,并重新启动了apache2和postfix,它仍然给出了同样的错误。 我甚至不知道它仍然从旧主机名获取,因为它不再存储在磁盘上的任何位置。

理想情况下,FQDN应与MTA的公共IP地址的反向DNS条目匹配。

main.cf:

 myhostname = fully.qualified.domain.name myorigin = /etc/mailname 

确保/ etc / mailname也具有域名。

 # cat /etc/mailname fully.qualified.domain.name 

然后:

 postfix reload postconf -n # to show currently running configuration 

接受的答案让我走了一半,谢谢。 为了使每个vhost发送带有正确返回路径的电子邮件,我必须在apache2 vhost配置中添加这样的部分:

  php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.name"