Apache,虚拟主机和sendmail的默认发件人

所以这是我的问题…我有两个站点托pipe在一台机器上使用Apache的虚拟主机。 我想使用适当的电子邮件地址从两个不同的网站(domain.com和domain2.com)发送电子邮件。 我目前在php.ini中有这个值:

sendmail_path = /usr/sbin/sendmail -t -i [email protected]

但是,当我尝试从domain2.com上的脚本发送电子邮件时,它显然是与一个From: [email protected]标题交付。 Apache不允许你在<VirtualHost>指令中设置这样的规则:

php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]"

那么完成这个的最好方法是什么? 我已经尝试从domain2.com的<VirtualHost>指令中设置php_admin_value mail.force_extra_parameters "[email protected]" ,但所有电子邮件仍然来自domain.com。 有任何想法吗?

尽pipe不允许从<VirtualHost>指令中设置sendmail_path,但可以<Directory>指令中进行设置。 所以我只是有这样的东西:

 <VirtualHost *:80> Standard stuff goes here <Directory /dir/to/your/web/root> php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]" </Directory> </VirtualHost> 

我不确定这是否是最合适的或优雅的方式来完成这一点,但它确实工作。 对不起,花了这么长的时间来回答,我不经常去SF,忘了这个问题。

你必须从你的php.ini中删除[email protected] 。 然后修改适当地为每个主机发送邮件的每个脚本的邮件function。 这样你可以为每个虚拟主机传递正确的-f参数。

当我尝试使用php_value或ini_set / ini_get修改我的sendmail_path(即使closuressafe_mode!我真的不知道为什么 – PHP 5.3.3),我一直面临问题。 不过,我重新读取PHP的邮件()函数 ,它的解决scheme是function。

bool mail(string $ to,string $ subject,string $ message [,string $ additional_headers [,string $ additional_parameters]])

所以最后一个参数允许附加参数 我改变了我的PHP邮件代码从邮件($到,$主题,$消息,implode(“\ r \ n”,$ headerFields), “-f”。

我认为这是杰夫,你会发现这更聪明。

希望这个帮助。