1、从网上下载PHPEmailer;
2、确保PHP环境支持sockets扩展,还要开启openssl,如下图:
3、配置QQ邮箱
1.开启SMTP服务
2.验证密保
3.获取授权码(这个就是IMAP/SMTP的密码)
4、发送邮件,代码如下
<?php/** * Created by PhpStorm. * User: 黎志明 * Date: 2018/6/20 * Time: 17:53 */header("content-type:text/html;charset=utf-8");ini_set("magic_quotes_runtime", 0);require ‘class.phpmailer.php‘;try { ???$mail = new PHPMailer(true); ???$mail->IsSMTP(); ???$mail->CharSet = ‘UTF-8‘; // 设置邮件的字符编码,这很重要,不然中文乱码 ???$mail->SMTPAuth = true; ?????????????????//开启认证 ???$mail->SMTPSecure = ‘ssl‘; // 使用安全协议 ???$mail->Port = 465; ???$mail->Host = "smtp.qq.com"; ???$mail->Username = "xxxxxx@qq.com"; ???$mail->Password = "xxxxx"; ???$mail->AddReplyTo("769111968@qq.com", "Timothy");//回复地址 ???$mail->From = "xxxxx@qq.com"; ???$mail->FromName = "xxxxx"; ???$to = "xxxxx@qq.com"; ???$mail->AddAddress($to); ???$mail->Subject = "phpmailer测试标题"; ???$mail->Body = "<h1>演示</h1>这是演示内容"; ???$mail->AltBody = "当邮件不支持html时备用显示"; // 当邮件不支持html时备用显示,可以省略 ???$mail->WordWrap = 80; // 设置每行字符串的长度 ???//$mail->AddAttachment("c:/1.jpg"); ?// 添加附件 ???$mail->IsHTML(true); ???$mail->Send(); ???echo ‘邮件发送成功‘;} catch (phpmailerException $e) { ???echo "邮件发送失败:" . $e->errorMessage();}
5、遇到的问题:SMTP Error: Could not authenticate.
解决办法网上绝大多数都是一下几个(可能真的有效,但我遇到的就不能解决了)
1.按下面的来修改;
function IsSMTP() {$this->Mailer = ‘smtp‘;}改为function IsSMTP() {$this->Mailer = ‘SMTP‘;}
2.将fsockopen函数替换成pfsockopen函数;
3.使用stream_socket_client函数,代码如下:
$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, ?$errstr, ?$tval);
以上的办法都试过,还是不能解决我的问题,然后我就怀疑是端口的问题,原来我用的端口是25,后来改成了465就解决了,这是由于使用了SSL,端口号要变成465
PHPEmailer使用简介(以qq邮箱为例)
原文地址:https://www.cnblogs.com/timothy-lai/p/9205157.html