php mail()函数在windows不能用,需要安装sendmail,假如是用的XAMPP,则已经下载好,不需要重新下载~
参考资料
qq邮箱开启smtp服务:https://jingyan.baidu.com/album/f00622283113c9fbd3f0c8d4.html?picindex=1
QQ邮箱的POP3与SMTP服务器是什么: http://service.mail.qq.com/cgi-bin/help?subtype=1&no=167&id=28ECS
解决windows系统下php.ini邮件配置正确不发送邮件的问题:https://help.aliyun.com/knowledge_detail/40745.html?spm=5176.11065259.1996646101.searchclickresult.4b74ac30dME0B4
解决方案
1.从http://glob.com.au/sendmail/下载sendmail.zip
2.解压到E:下,例如:【E:sendmail】最好短路径,长路径名有可能产生问题。
3.修改【php.ini】如下 (测试时用的是qq的邮箱)
[mail function]
; For Win32 only.
SMTP =smtp.qq.com
smtp_port =465
sendmail_from =1004100390@qq.com
sendmail_path = “E:sendmailsendmail.exe -t”
*重启apache服务
4.修改【sendmail.ini】如下。
[sendmail]
smtp_server=smtp.qq.com
smtp_port=465
auth_username=1004100390@qq.com
auth_password=password
force_sender=1004100390@qq.com
*用sendmail结合其它的smtp服务器,如smtp.qq.com来实现发邮件。现在大部分邮箱都要求smtp验证,所以要在sendmail.ini中加入用户名和密码。
username是你的邮箱账号,password是授权码,需要你在qq邮箱开启smtp服务,他会给你一个授权码,(必须开启否则无效,开启方法见参考资料)
5.PHP代码
$headers = "From:webmaster@example.com" . "rn" ."CC:somebodyelse@example.com";
//发件人 以及 抄送
$rs=mail("674094877@qq.com","My subject","ceshi content",$headers);
if($rs){
echo "success";
}else{
echo "error";
}