Flo*_*ian 6 php email smtp sendmail
我知道之前曾问过这个问题.
当我调用PHP mail()函数时,它返回true.
我检查了我的php.ini(我正在运行CentOS):
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i
mail.add_x_header = On
Run Code Online (Sandbox Code Playgroud)
我在论坛上看到我必须安装sendmail.所以我安装了它.现在,具有mail()函数的站点不再加载.所以我删除了sendmail,mail()函数再次返回true,但不发送邮件.
任何的想法?
要发送电子邮件,您需要 SMTP 服务器(本地或远程)。实际上,您的邮件功能只是将邮件传递到您的 SMTP 服务器,这才是真正发送您的电子邮件的功能。
在你的 php.ini 中出现这一行
sendmail_path = /usr/sbin/sendmail -t -i
Run Code Online (Sandbox Code Playgroud)
如果您使用该配置参数(来自手册) ,您应该注意:
如果设置,则忽略 smtp、smtp_port 和 sendmail_from 并执行指定的命令。
但这里最重要的事情是您只需卸载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文件)
您还可以验证邮件不在 postfix 队列中:
后队列-f
| 归档时间: |
|
| 查看次数: |
22064 次 |
| 最近记录: |