Home >Backend Development >PHP Tutorial >phpmailer - phpemailer keeps failing to send

phpmailer - phpemailer keeps failing to send

WBOY
WBOYOriginal
2016-07-06 13:52:002346browse

<code>
2016-06-29 10:24:57    CLIENT -> SERVER: EHLO www.a.com
2016-06-29 10:24:57    CLIENT -> SERVER: AUTH LOGIN
2016-06-29 10:24:57    CLIENT -> SERVER: MzA1MzU2MTIzQHFxLmNvbQ==
2016-06-29 10:24:57    CLIENT -> SERVER: YWRtaW44ODg=
2016-06-29 10:24:57    SMTP ERROR: Password command failed: 535 Error: ��ʹ����Ȩ����¼�������뿴: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
2016-06-29 10:24:57    SMTP Error: Could not authenticate.
2016-06-29 10:24:57    CLIENT -> SERVER: QUIT
2016-06-29 10:24:57    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
发送邮件失败,错误信息未:SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting



<?php
/**
 *
 * 
 */

header("Content-type: text/html; charset=utf-8"); 

require '../../PHPMailer/PHPMailerAutoload.php';


$mail = new PHPMailer;



//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
 
//使用smtp鉴权方式发送邮件,当然你可以选择pop方式 sendmail方式等 本文不做详解
//可以参考http://phpmailer.github.io/PHPMailer/当中的详细介绍

//smtp需要鉴权 这个必须是true
$mail->SMTPAuth=true;
//链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
//设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
//设置ssl连接smtp服务器的远程服务器端口号 可选465或587
$mail->Port = 465;
//设置smtp的helo消息头 这个可有可无 内容任意
$mail->IsSMTP();



$mail->Username = "30535690@qq.com";   // 用户名

$mail->Password = "admin888";          // 密码 

//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
$mail->isHTML(true); 
//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
$mail->addAddress('5452881@qq.com','晶晶在线用户');
//添加多个收件人 则多次调用方法即可
$mail->addAddress('lijuan@baidu.com','晶晶在线用户');
//添加该邮件的主题
$mail->Subject = 'PHPMailer发送邮件的示例';
//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
$mail->Body = "这是一个<b style=\"color:red;\">PHPMailer</b>发送邮件的一个测试用例";
//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
//$mail->addAttachment('./d.jpg','mm.jpg');
//同样该方法可以多次调用 上传多个附件
//$mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');
 
 
//发送命令 返回布尔值 
//PS:经过测试,要是收件人不存在,若不出现错误依然返回true 也就是说在发送之前 自己需要些方法实现检测该邮箱是否真实有效
$status = $mail->send();
 
//简单的判断与提示信息
if($status) {
 echo '发送邮件成功';
}else{
 echo '发送邮件失败,错误信息未:'.$mail->ErrorInfo;
}

</code>

Reply content:

<code>
2016-06-29 10:24:57    CLIENT -> SERVER: EHLO www.a.com
2016-06-29 10:24:57    CLIENT -> SERVER: AUTH LOGIN
2016-06-29 10:24:57    CLIENT -> SERVER: MzA1MzU2MTIzQHFxLmNvbQ==
2016-06-29 10:24:57    CLIENT -> SERVER: YWRtaW44ODg=
2016-06-29 10:24:57    SMTP ERROR: Password command failed: 535 Error: ��ʹ����Ȩ����¼�������뿴: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
2016-06-29 10:24:57    SMTP Error: Could not authenticate.
2016-06-29 10:24:57    CLIENT -> SERVER: QUIT
2016-06-29 10:24:57    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
发送邮件失败,错误信息未:SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting



<?php
/**
 *
 * 
 */

header("Content-type: text/html; charset=utf-8"); 

require '../../PHPMailer/PHPMailerAutoload.php';


$mail = new PHPMailer;



//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
 
//使用smtp鉴权方式发送邮件,当然你可以选择pop方式 sendmail方式等 本文不做详解
//可以参考http://phpmailer.github.io/PHPMailer/当中的详细介绍

//smtp需要鉴权 这个必须是true
$mail->SMTPAuth=true;
//链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
//设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
//设置ssl连接smtp服务器的远程服务器端口号 可选465或587
$mail->Port = 465;
//设置smtp的helo消息头 这个可有可无 内容任意
$mail->IsSMTP();



$mail->Username = "30535690@qq.com";   // 用户名

$mail->Password = "admin888";          // 密码 

//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
$mail->isHTML(true); 
//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
$mail->addAddress('5452881@qq.com','晶晶在线用户');
//添加多个收件人 则多次调用方法即可
$mail->addAddress('lijuan@baidu.com','晶晶在线用户');
//添加该邮件的主题
$mail->Subject = 'PHPMailer发送邮件的示例';
//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
$mail->Body = "这是一个<b style=\"color:red;\">PHPMailer</b>发送邮件的一个测试用例";
//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
//$mail->addAttachment('./d.jpg','mm.jpg');
//同样该方法可以多次调用 上传多个附件
//$mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');
 
 
//发送命令 返回布尔值 
//PS:经过测试,要是收件人不存在,若不出现错误依然返回true 也就是说在发送之前 自己需要些方法实现检测该邮箱是否真实有效
$status = $mail->send();
 
//简单的判断与提示信息
if($status) {
 echo '发送邮件成功';
}else{
 echo '发送邮件失败,错误信息未:'.$mail->ErrorInfo;
}

</code>

The error message is obviousPassword command failedThere is a problem with the passwordCould not authenticateThe verification cannot be passed! What else don’t you understand?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn