try {
set_time_limit(0);
//require CFG_PATH_LIB.'PHPMailer/_lib/class.phpmailer.php';
require CFG_PATH_LIB.'PHPMailer_v5.1/class.phpmailer.php';
//require CFG_PATH_LIB.'PHPMailer_v5.1/class.smtp.php';
$mail = new PHPMailer(); //建立邮件发送类
$mail->IsSMTP(); // 使用SMTP方式发送
$address ="[email protected]";
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Host = "smtp.163.com"; // 您的企业邮局域名
$mail->Username = "[email protected]"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "*********"; // 邮局密码
$mail->CharSet = "UTF-8"; //字符集
$mail->Port = 25;
// $mail->Mailer = "smtp";
$mail->From = "[email protected]"; //邮件发送者email地址
$mail->FromName = "liuyoubin";
$mail->AddAddress("{$address}", "a");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail->Subject = "这是欠款邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
//$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
if(!$mail->Send())
{
echo "邮件发送失败. <p>";
echo "错误原因: " . $mail->ErrorInfo;
exit;
}
echo "邮件发送成功";
php 发送邮件老是显示SMTP Error: Could not authenticate.
请问这是怎么一回事,帐号和密码都是对的
代码中$mail->Password = "*********";应该是明文密码才对,如果你是防止我们看到,此点略过,请往下看。
首先遇到这样情况有好几种,说两个我遇到过的吧
如果你的环境WAMP的,检查下php.ini中两个扩展组件是否加载,如果没有,去掉下面的两个分号然后重启环境即可。
;extension=php_sockets.dll
;extension=php_openssl.dll
如果上述问题不存在,请检查虚拟主机是否支持PHPMailer默认调用的fsockopen函数,找到class.smtp.php文件,搜索fsockopen,将fsockopen函数替换成pfsockopen函数。因为pfsockopen的参数与fsockopen基本一致,所以只需要将@fsockopen替换成@pfsockopen就可以了。
如果2中描述仍不能解决你的问题,那么接下来校验下是否账号,如果你的账号是近期注册的小号,即使你开启了 POP3/SMTP/IMAP,仍会存在此问题,亲测过,不要问为什么,这里提供你个测试账号,账号:[email protected];密码:12345gy;(注:拿着测用就好了,请不修改账号信息与密码!)
如果3中仍不能解决你问题,用PHPmailer 5.0.0版本试试,留邮箱我可以发你。以上纯手打如有帮助还请采纳!!!
这里应该