1

搬到新主机后,我开始遇到奇怪的问题。

PHP mail() 函数仅在我使用 -f 参数将以下行添加到 php.ini 时才有效。(如果我省略 -f 参数,mail() 函数将返回 true,但什么也不做。)

[mail function]
  sendmail_path = "/usr/sbin/sendmail -t -i -f email@mydomain.com"

但是,这会导致所有消息都具有以下不需要的标头:

Return-Path: <email@mydomain.com>

我尝试向 mail() 添加第五个参数,但它没有效果。

我非常感谢您的帮助。提前致谢!

4

1 回答 1

0

检查/更改您的 PHP 邮件配置:

打开您的 php.ini 文件(如果您不知道它在哪里,请参见下文) 搜索显示为 [mail function] 添加/更改邮件服务器的详细信息的行。这可以是本地邮件服务器或 ISP 的邮件服务器。保存/关闭 php.ini 文件 重新启动您的网络服务器

首次打开 php.ini 文件时邮件设置的示例:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

附加信息在回显中,phpinfo()您可以查看您的 PHP 配置详细信息。您可以通过创建一个包含以下行的 .php 文件来做到这一点: . 当您在浏览器中运行它时,您将看到 PHP 配置变量的完整列表。只需搜索包含 php.ini 和 sendmail_path 的行即可查看您需要使用的值。

另一个想法是您可以ini_set()像这样正确配置您的邮件设置

如果您的邮件脚本继续失败,请将以下代码添加到您的电子邮件脚本的顶部。

// Please specify your Mail Server - Example: mail.example.com.
ini_set("SMTP","mail.example.com");

// Please specify an SMTP Number 25 and 8889 are valid SMTP Ports.
ini_set("smtp_port","25");

// Please specify the return address to use
ini_set('sendmail_from', 'example@YourDomain.com');
于 2013-03-27T00:03:35.927 回答