PHPMailer配置QQ邮箱163邮箱和谷歌邮箱发送邮件
发邮件是我们平常项目中比较常用的一个功能。那么如何使用PHP代码来写一个发送邮件功能的程序呢,我今天就来给慕课网的小伙伴们介绍一下我们最常用的PHPMailer的用法,利用他可以借助QQ邮箱网易邮箱和谷歌邮箱等的免费SMTP邮件服务器来发邮件。
[TOC]
开启网易和QQ邮箱的SMTP服务
由于网易和QQ邮箱的SMTP服务默认是不开启的,谷歌的是开启的,所以小伙伴们要是选择了网易和QQ邮箱的话是需要登录到邮箱去开启的。
网易邮箱
进入到POP3/SMTP/IMAP设置页面
没有开启服务的小伙伴们请自己开启,开启过程中会验证一些手机号之类的,
完成后可以看到,<font color='red'>左侧栏有一个客户端授权密码的东西,这个很重要哦,一定要记下来</font>
QQ邮箱
然后选择账户如下图
看看你是否开启了第一个服务器,我们开启第一个就行,如果小伙伴们没有开启就先开启吧,这里也会验证手机。
完成后我们点击生成授权码
生成后我们要复制这个授权码,(注意授权码看上去是有空格的,但是实际复制粘贴后没有空格,没有空格的才是正确的)
好了到现在我们做了完了一些准备工作。接下来小伙伴们要准备代码了。
下载PHPMailer并开启php_openssl、php_socket扩展
PHPMailer在github上可以搜索到,那么每次的更新都可以看到
地址 https://github.com/PHPMailer/PHPMailerphp_openssl 和php_socket 这个必须要开启的,不管你是windows还是Linux
编写代码
我们将克隆下来的代码放到服务器根目录。进入到这个PHPMailer文件夹。
新建文件index.php
网易邮箱
<?php include_once "class.phpmailer.php"; include_once "class.smtp.php"; //获取一个外部文件的内容 $mail=new PHPMailer(); $body="<h1>欢迎大家来到慕课网学习,我们一起共同进步</h1>"; //设置smtp参数 $mail->IsSMTP(); $mail->SMTPAuth=true; $mail->SMTPKeepAlive=true; $mail->Host="smtp.163.com"; $mail->Port=25; //填写你的email账号和密码 $mail->Username="13033737678@163.com"; $mail->Password="abcd*****xyz";#注意这里要填写授权码就是我在上面网易邮箱开启SMTP中提到的,不能填邮箱登录的密码哦。 //设置发送方,最好不要伪造地址 $mail->From="13033737678@163.com"; $mail->FromName="隗**"; $mail->Subject="隗**发来的一封邮件"; $mail->AltBody=$body; $mail->WordWrap=50; // set word wrap $mail->MsgHTML($body); //设置回复地址 $mail->AddReplyTo("13033737678@163.com","隗**"); //添加附件,此处附件与脚本位于相同目录下否则填写完整路径 //附件的话我就注释掉了 #$mail->AddAttachment("attachment.jpg"); #$mail->AddAttachment("attachment.zip"); //设置邮件接收方的邮箱和姓名 $mail->AddAddress("1079285995@qq.com","hello"); //使用HTML格式发送邮件 $mail->IsHTML(true); //通过Send方法发送邮件 //根据发送结果做相应处理 if(!$mail->Send()){ echo "Mailer Error:".$mail->ErrorInfo; }else{ echo "Message has been sent"; } ?>
QQ邮箱
<?php include_once "class.phpmailer.php"; include_once "class.smtp.php"; //获取一个外部文件的内容 $mail=new PHPMailer(); $body="<h1>欢迎大家来到慕课网学习,我们一起共同进步</h1>"; //设置smtp参数 $mail->IsSMTP(); $mail->SMTPAuth=true; $mail->SMTPKeepAlive=true; $mail->SMTPSecure= "ssl"; $mail->Host="smtp.qq.com"; $mail->Port=465; //填写你的email账号和密码 $mail->Username="479714212@qq.com"; $mail->Password="abcd****xyz";#注意这里也要填写授权码就是我在上面QQ邮箱开启SMTP中提到的,不能填邮箱登录的密码哦。 //设置发送方,最好不要伪造地址 $mail->From="479714212@qq.com"; $mail->FromName="隗**"; $mail->Subject="隗**发来的一封邮件"; $mail->AltBody=$body; $mail->WordWrap=50; // set word wrap $mail->MsgHTML($body); //设置回复地址 $mail->AddReplyTo("479714212@qq.com","隗**"); //添加附件,此处附件与脚本位于相同目录下否则填写完整路径 //附件的话我就注释掉了 #$mail->AddAttachment("attachment.jpg"); #$mail->AddAttachment("attachment.zip"); //设置邮件接收方的邮箱和姓名 $mail->AddAddress("1079285995@qq.com","hello"); //使用HTML格式发送邮件 $mail->IsHTML(true); //通过Send方法发送邮件 //根据发送结果做相应处理 if(!$mail->Send()){ echo "Mailer Error:".$mail->ErrorInfo; }else{ echo "Message has been sent"; } ?>
谷歌邮箱
这里出生在天朝的小伙伴们要注意了,因为某些原因我们上不了谷歌,因此
下面的这个操作需要小伙伴认(fan)真(qiang)操作哦。
<?php include_once "class.phpmailer.php"; include_once "class.smtp.php"; //获取一个外部文件的内容 $mail=new PHPMailer(); $body="<h1>欢迎大家来到慕课网学习,我们一起共同进步</h1>"; //设置smtp参数 $mail->IsSMTP(); $mail->SMTPAuth=true; $mail->SMTPKeepAlive=true; $mail->SMTPSecure= "ssl"; $mail->Host="smtp.gmail.com"; $mail->Port=465; //填写你的email账号和密码 $mail->Username="huangby19890920@gmail.com"; $mail->Password="abc*****xyz";#哈哈哈这里大家需要填写谷歌邮箱的登录密码 //设置发送方,最好不要伪造地址 $mail->From="huangby19890920@gmail.com"; $mail->FromName="隗**"; $mail->Subject="隗**发来的一封邮件"; $mail->AltBody=$body; $mail->WordWrap=50; // set word wrap $mail->MsgHTML($body); //设置回复地址 $mail->AddReplyTo("huangby19890920@gmail.com","隗**"); //添加附件,此处附件与脚本位于相同目录下否则填写完整路径 //附件的话我就注释掉了 #$mail->AddAttachment("attachment.jpg"); #$mail->AddAttachment("attachment.zip"); //设置邮件接收方的邮箱和姓名 $mail->AddAddress("1079285995@qq.com","hello"); //使用HTML格式发送邮件 $mail->IsHTML(true); //通过Send方法发送邮件 //根据发送结果做相应处理 if(!$mail->Send()){ echo "Mailer Error:".$mail->ErrorInfo; }else{ echo "Message has been sent"; }
验证
163邮箱
qq邮箱
谷歌邮箱
吐槽
最后吐槽一下网上的很多方法,要么不全,要么不对,要么没说清楚,这里我给小伙伴们算是整理并验证了一下了。希望对大家有帮助。
Dcr163的博客
http://dcr163.cn/83.html(转载时请注明本文出处及文章链接)