我的专用服务器(运行 centos5)上大约有 6 个站点,所有使用 php 邮件功能发送的电子邮件都是通过[电子邮件保护]例如“已接收:来自本地的任何人,由 servername.hostname.com 发送(Exim 4.69)”。有什么方法可以更改此设置以显示适当的域?
答案1
来自PHP 手册为了mail()
:
注意:发送邮件时,邮件必须包含发件人标头。这可以通过 additional_headers 参数设置,也可以在 php.ini 中设置默认值。
与大多数 php.ini 设置一样,这可以在 Apache 上的 vhost 配置中或通过 .htaccess 覆盖,也可以在脚本中设置(可选择使用 auto_prepend),并且从 5.3.0 开始通过用户配置文件文件。但是,与其明确设置发件人、回复至和返回路径标头,不如在调用“sendmail”程序处理邮件时指定收件人,这样更简单。
假设 exim 在其 sendmail cli 的命令行上使用标准标志:
在php.ini中:
sendmail_path = "/usr/sbin/sendmail [email protected] -t -i"
在 httpd.conf 中
php_admin_value sendmail_path "/usr/sbin/sendmail [email protected] -t -i"
在 .htaccess.conf 中
php_value sendmail_path "/usr/sbin/sendmail [email protected] -t -i"
(请注意,您的发送邮件路径可能与显示的不同)
C。
答案2
您可以使用一些包装脚本,例如我的php-安全-sendmail。它允许您记录每封发送的电子邮件(虚拟主机、日期/时间、收件人)、限制虚拟主机每小时/每天发送的电子邮件数量、设置信封发件人等等……
答案3
只能使用以下方法覆盖该值php_admin_value在 apache 站点配置文件中。无法使用 php_value 进行设置
答案4
您必须使用 -f 选项php 邮件功能。