php无法用mail函数发送邮件之原因
来源:互联网 发布:短网址源码 编辑:程序博客网 时间:2024/05/29 12:43
用如下代码发送邮件,可总是发送失败。
[php] view plaincopyprint?
01.<?php
02.$to = "xxxxxxxx@qq.com";
03.$subject = "Test mail";
04.$message = "Hello! This is a simple email message.";
05.mail($to,$subject,$message);
06.?>
经查,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代码,邮件发送成功了。
- php无法用mail函数发送邮件之原因
- php无法用mail函数发送邮件之原因
- php无法用mail函数发送邮件之原因
- 用PHP MAIL()函数发送HTML邮件
- [php]mail函数发送邮件
- PHP调用mail( )函数直接发送邮件
- PHP mail函数发送HTML邮件
- PHP的mail函数实现邮件发送
- php mail函数发送邮件header过长
- PHP通过mail函数发送带附件的邮件
- PHP通过mail函数发送带附件的邮件
- PHP使用mail函数发送邮件标题乱码问题
- [php]mail函数发送邮件(正文+附件+中文)
- php mail函数发送html邮件不解析,linux+postfix
- php-mail()函数发送UTF-8邮件-中文标题乱码
- php中使用mail函数发送邮件时的注意事项
- php使用内置函数mail()发送邮件的解决方案
- CentOS7 配置sendmial + PHP mail函数发送邮件
- Android 面试题学习
- java反射、内省、注解
- 关于友盟分享的小问题
- 总结一下 input propertychange
- 二分查找
- php无法用mail函数发送邮件之原因
- Java并发编程:线程池的使用
- iOS开发证书变成“此证书的签发者无效”解决方法
- BZOJ_P4128 Matrix(矩阵乘法+快速幂+BSGS)
- 梆梆SDKs详细分析-防界面劫持SDK
- MySQL 存储引擎
- c 文本文件拷贝
- FMDB数据库总结
- 关于sizeof(str)的问题