gpt4 book ai didi

PHP mail() 函数返回 true,但不发送邮件

转载 作者:可可西里 更新时间:2023-11-01 13:24:20 24 4
gpt4 key购买 nike

我知道这个问题之前有人问过。

当我调用 PHP mail() 函数时,它返回 true。

我检查了我的 php.ini(我运行的是 CentOS):

SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i
mail.add_x_header = On

我在论坛上看到我必须安装 sendmail。所以我安装了它。现在带有 mail() 函数的站点不再加载。所以我删除了 sendmail,mail() 函数再次返回 true,但不发送邮件。

有什么想法吗?

最佳答案

要发送电子邮件,您需要一个 SMTP 服务器(本地或远程)。实际上,您的邮件功能只是将邮件传递到您的 SMTP 服务器,而这才是真正发送您的电子邮件的功能。

在你的 php.ini 中出现这一行

sendmail_path = /usr/sbin/sendmail -t -i

如果您使用该配置参数(来自 manual),您应该知道:

If set, smtp, smtp_port and sendmail_from are ignored and the specified command is executed.

但这里最重要的是您只需卸载 sendmail 这样您就可以期望您的邮件无处可去。我知道 sendmail 给您带来了一些问题,可能是配置问题,但现在您的 php.ini 配置是错误的。

如何解决?

  • 开始从 php.ini 中删除 sendmail_path 参数。

  • 安装一个易于配置的 SMTP 服务器,例如 postfix

  • 验证 postfix 正在监听端口 22:

netstat -lnt

  • 尝试从您的 php mail() 函数发送邮件

  • 验证您的邮件是否已正确发送(检查您的 /var/log/mail.log/var/log/mail/mail.log 文件)

  • 您还可以验证邮件不在后缀队列中:

postqueue -f

关于PHP mail() 函数返回 true,但不发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com