php无法使用mail函数原因分析及解决方法
用如下代码发送邮件,可总是发送失败。
[PHP] view plaincopyprint?
<?php $to = "xxxxxxxx@qq.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; mail($to,$subject,$message); ?>
经查,PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数mail()可用。所用的邮件系统程序通过在 php.ini 文件中进行设置。具体解决方法如下:
1.安装sendmail
sudo apt-get install sendmail
sudo apt-get install sendmail-cf
sudo apt-get install mailutils
2.配置sendmail
打开/etc/mail/sendmail.mc,找到如下行:
DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
将127.0.0.1改为0.0.0.0
执行如下命令备份旧的配置文件,生成新的配置文件:
cd /etc/mail
mv sendmail.cf sendmail.cf~
m4 sendmail.mc > sendmail.cf
3.测试
echo "This is a test mail." | mail -s "test" xxxxxxxx@qq.com
注意:该邮件会被当作垃圾邮件接收,另外如果使用163邮箱可能会被直接过滤掉而无法收到。
4.配置php.ini文件
打开/etc/php5/apache2/php.ini,找到如下行:
; sendmail_path =
将该行改为:sendmail_path = /usr/sbin/sendmail -t
这里特别需要注意的是“-t"参数必不可少,如果缺少了它,当通过浏览器执行原php文件时,mail()函数会执行失败,但是如果直接在服务器端使用php命令行执行原php文件则不会出现问题。
5.重启apache
sudo /etc/init.d/apache2 restart
以上就是php无法使用mail函数原因分析及解决方法的详细内容,更多请关注其它相关文章!
推荐阅读
-
华硕笔记本外接键盘无法使用的原因及解决方法
-
Kali无法使用Chrome原因及解决方法
-
win10应用商店无法更新提示错误代码0x80246007的原因分析及解决方法
-
无法使用pip命令安装python第三方库的原因及解决方法
-
win7系统打开软件提示应用程序无法启动的故障原因分析及2种解决方法
-
Win7系统打不开steam提示无法链接至steam网络的多种原因分析及解决方法
-
硬盘能识别可是无法使用是怎么回事原因分析及解决
-
XP系统安装软件提示无法访问您要使用的功能所在的网络位置的原因及两种解决方法
-
php session_start()出错原因分析及解决方法
-
神州战神bios无法识别u盘的原因分析及解决方法图文教程