以前使用QQ邮箱、163服务器发送邮件,帐号直接使用密码,现在不行了,得使用授权码,简单记录下
1、首先开通POP3/SMTP服务,QQ邮箱——帐号——设置,找到POP3/SMTP点开启,输入短信会有授权码,复制好,发送邮件需要用到
2、下载PHPmailer:PHPMailer/PHPMailer" rel="nofollow" target="_blank">https://github.com/PHPMailer/PHPMailer
下载后只取用到的:
class.PHPmailer.PHP、class.PHPmaileroauth.PHP、class.pop3.PHP、class.smtp.PHP、PHPMailerAutoload.PHP。
4033078b.jpg" alt="这里写图片描述">
test.PHP
PHP
发送邮件方法
*@param $to:接收者 $title:标题 $content:邮件内容
*@return bool true:发送成功 false:发送失败
sendMail(,,
<span style="color: #800080;">$flag = sendMail('xxxxxx@163.com','注册成功','恭喜你加入爱代码,爱生活世界'<span style="color: #000000;">);
<span style="color: #0000ff;">if(<span style="color: #800080;">$flag<span style="color: #000000;">){
<span style="color: #0000ff;">echo "发送邮件成功!"<span style="color: #000000;">;
}<span style="color: #0000ff;">else<span style="color: #000000;">{
<span style="color: #0000ff;">echo "发送邮件失败!"<span style="color: #000000;">;
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">引入<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Mailer的核心<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> 使用require_once包含避免出现<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Mailer类重复定义的警告</span>
<span style="color: #0000ff;">require_once</span>("<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>mailer/class.<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>mailer.<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>"<span style="color: #000000;">);
</span><span style="color: #0000ff;">require_once</span>("<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>mailer/class.smtp.<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>"<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">实例化<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Mailer核心类</span>
<span style="color: #800080;">$mail</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> <a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Mailer();
</span><span style="color: #008000;">//</span><span style="color: #008000;">是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认<a href="https://www.jb51.cc/tag/guanbi/" target="_blank" class="keywords">关闭</a>debug调试模式</span>
<span style="color: #800080;">$mail</span>->SMTPDebug = 1<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">使用smtp鉴权方式<a href="https://www.jb51.cc/tag/fasongyoujian/" target="_blank" class="keywords">发送邮件</a></span>
<span style="color: #800080;">$mail</span>-><span style="color: #000000;">isSMTP();
</span><span style="color: #008000;">//</span><span style="color: #008000;">smtp需要鉴权 这个必须是true</span>
<span style="color: #800080;">$mail</span>->SMTPAuth=<span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"><a href="https://www.jb51.cc/tag/lianjie/" target="_blank" class="keywords">链接</a>qq域名邮箱的服务器地址</span>
<span style="color: #800080;">$mail</span>->Host = 'smtp.qq.com';<span style="color: #008000;">//</span><span style="color: #008000;">163邮箱:smtp.163.com
//设置使用ssl加密方式<a href="https://www.jb51.cc/tag/denglu/" target="_blank" class="keywords">登录</a>鉴权</span>
<span style="color: #800080;">$mail</span>->SMTPSecure = 'ssl';<span style="color: #008000;">//</span><span style="color: #008000;">163邮箱就注释
//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587</span>
<span style="color: #800080;">$mail</span>->Port = 465;<span style="color: #008000;">//</span><span style="color: #008000;">163邮箱:25
//设置smtp的helo消息头 这个可有可无 内容任意
// $mail->Helo = 'Hello smtp.qq.com Server';
//设置发件人的主机域 可有可无 默认为localhost <a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>任意,建议使用你的域名</span>
<span style="color: #800080;">$mail</span>->Hostname = 'http://localhost/'<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">设置发送的<a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码</span>
<span style="color: #800080;">$mail</span>->CharSet = 'UTF-8'<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">设置发件人姓名(昵称) 任意<a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>,<a href="https://www.jb51.cc/tag/xianshi/" target="_blank" class="keywords">显示</a>在收件人<a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>的发件人邮箱地址前的发件人姓名</span>
<span style="color: #800080;">$mail</span>->FromName = 'xxxxx'<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">smtp<a href="https://www.jb51.cc/tag/denglu/" target="_blank" class="keywords">登录</a>的账号 这里填入字符串格式的qq号即可</span>
<span style="color: #800080;">$mail</span>->Username ='xxxxx@qq.com'<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">smtp<a href="https://www.jb51.cc/tag/denglu/" target="_blank" class="keywords">登录</a>的密码 使用<a href="https://www.jb51.cc/tag/shengcheng/" target="_blank" class="keywords">生成</a>的授权码(就刚才叫你保存的最新的授权码)</span>
<span style="color: #800080;">$mail</span>->Password = '填写第1步<a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a>的授权码';<span style="color: #008000;">//</span><span style="color: #008000;">163邮箱也有授权码 进入163邮箱帐号<a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a>
//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”</span>
<span style="color: #800080;">$mail</span>->From = 'xxxxx@qq.com'<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"><a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>正文是否为html编码 注意此处是一个<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a> 不再是<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a> true或false</span>
<span style="color: #800080;">$mail</span>->isHTML(<span style="color: #0000ff;">true</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">设置收件人邮箱地址 该<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会<a href="https://www.jb51.cc/tag/zidong/" target="_blank" class="keywords">自动</a>进行处理变动 这里第二个参数的意义不大</span>
<span style="color: #800080;">$mail</span>->addAddress(<span style="color: #800080;">$to</span>,'爱<a href="https://www.jb51.cc/tag/daima/" target="_blank" class="keywords">代码</a>,爱生活世界'<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">添加多个收件人 则多次调用方法即可
// $mail->addAddress('xxx@163.com','爱<a href="https://www.jb51.cc/tag/daima/" target="_blank" class="keywords">代码</a>,爱生活世界');
//<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>该<a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>的<a href="https://www.jb51.cc/tag/zhuti/" target="_blank" class="keywords">主题</a></span>
<span style="color: #800080;">$mail</span>->Subject = <span style="color: #800080;">$title</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"><a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a><a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents<a href="https://www.jb51.cc/tag/hanshu/" target="_blank" class="keywords">函数</a>读取本地的html<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a></span>
<span style="color: #800080;">$mail</span>->Body = <span style="color: #800080;">$content</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
// $mail->addAttachment('./d.jpg','mm.jpg');
//同样该<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>可以多次<a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a> <a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>多个附件
// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');</span>
<span style="color: #800080;">$status</span> = <span style="color: #800080;">$mail</span>-><span style="color: #000000;">send();
</span><span style="color: #008000;">//</span><span style="color: #008000;">简单的判断与<a href="https://www.jb51.cc/tag/tishi/" target="_blank" class="keywords">提示</a>信息</span>
<span style="color: #0000ff;">if</span>(<span style="color: #800080;">$status</span><span style="color: #000000;">) {
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">;
}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
}
}
<span style="color: #008000;">//<span style="color: #008000;">测试<span style="color: #800080;">$flag = sendMail('xxxxxx@163.com','注册成功','恭喜你加入爱代码,爱生活世界'<span style="color: #000000;">);
<span style="color: #0000ff;">if(<span style="color: #800080;">$flag<span style="color: #000000;">){
<span style="color: #0000ff;">echo "发送邮件成功!"<span style="color: #000000;">;
}<span style="color: #0000ff;">else<span style="color: #000000;">{
<span style="color: #0000ff;">echo "发送邮件失败!"<span style="color: #000000;">;
}
404a40cc8df700e0.jpg" alt="">
原文链接:https://www.f2er.com/php/403013.html