终于还是成功了,差点没放弃。由于之前在做一个异常处理的时候用到了邮件提醒功能,所以顺便研究了一下在php下如何发送邮件。第一次摸索,折腾了整整一天,最后还是成功了。现做个经历总结,方便大家交流,初次接触,如有不对的地方欢迎指出。
那么如何在PHP环境下发送邮件呢,这里介绍一个比较常用的方法,就是使用函数是mail()。
关于mail函数的使用方法大家可以查看官方手册: http://php.net/manual/zh/function.mail.php,这里我主要给大家介绍一下相关的服务器配置和sendmail搭建过程。
准备:
1、开发环境:WAMP(Windows+Apache+MySql+PHP),建议使用phpStudy集成环境。
2、sendmail下载:
下载地址:https://www.glob.com.au/sendmail/
备用地址:http://pan.baidu.com/s/1eRC43aM ( 密码:6hci )
3、准备好一个QQ邮箱
为什么要使用QQ邮箱?
这是我踩的一个坑,我一开始是用126邮箱和163邮箱来做测试的(126和163是一家的)。我按部就班地把一切都配置好了,但就是一直发送不成功,而且还没有报错,这就真让我抓狂了。最后,是一样的配置我换了QQ邮箱才可以成功发送邮件,其中还有一个坑,下面再说。
当然,你也可以试一下使用其它的邮件服务器。
当然,如果你不想使用第三方的邮件,你还可以尝试自己搭建一个邮件服务器,在这里我就不多介绍了。
好,下面开始:
设置QQ邮箱
1、登录你的QQ
2、点击”设置“-”帐户“,找到”POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务“这一项,如图:
3、点击开启”IMAP/SMTP服务“
配置sendmail
1、把下载好的sendmail
把sendmail压缩解压到一个文件夹(随便哪个文件夹都行,我的是放在E:\phpStudy\sendmail)
2、打开sendmail.ini配置文件,修改配置如下:
smtp_server=smtp.qq.com
smtp_port=25 ;默认是25,默认就行
auth_username=27378xxxx@qq.com ;这里写你的QQ邮箱
auth_password=************* ; 注意,这就是我想说的第二个坑。记住!这里填写的不是你邮箱的密码,而是授权码!授权码也是在QQ设置里面可以获得,这里我就不截图了
force_sender=27378xxxx@qq.com ;同样,这里也是写你的QQ邮箱
好了,到这sendmail配置完成,除了以上配置,在sendmail.ini文件里其它的配置项你都可以用分号";"注释掉。
配置php.ini
打开php的配置文件php.ini搜索"[mail function]",配置如下:
sendmail_path = "E:\phpStudy\sendmail\sendmail.exe -t -i" ;你的sendmail安装的位置
在[mail function]区域内其它的都注释掉,就配置上面那一行就行。
至此,配置结束。
重启Apache。
测试
测试代码如下:
$message="Line 1...\nLine 2...\nLine 3...";
$message= wordwrap($message,70);
$r= mail('28460xxxx@qq.com','My Subject',$message);
var_dump($r);
附上成功截图:
《完》