首页 > 后端开发 > php教程 > PHPMailer出现Called Mail() without being connected错误

PHPMailer出现Called Mail() without being connected错误

WBOY
发布: 2016-06-23 13:54:38
原创
2244 人浏览过

用PHPMailer发送邮件,根据例子敲了如下代码

require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录$mail = new PHPMailer(); //建立邮件发送类//$address = $_POST['address'];$mail->IsSMTP(); // 使用SMTP方式发送$mail->Host = "mail.qq.com";// 您的企业邮局域名$mail->Port = '25';//$mail->SMTPAuth = true; // 启用SMTP验证功能$mail->Username = "497045318@qq.com"; // 邮局用户名(请填写完整的email地址)$mail->Password = "******"; // 邮局密码$mail->From = "497045318@qq.com"; //邮件发送者email地址$mail->FromName = "Frank Tung";$mail->AddAddress("tongzhenhang@qq.com");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")//$mail->AddReplyTo("", "");//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式$mail->Subject = "PHPMailer测试邮件"; //邮件标题$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 "邮件发送成功";
登录后复制

结果出现
邮件发送失败.

错误原因: The following From address failed: 497045318@qq.com : Called Mail() without being connected

我尝试把class.phpmailer.php中的
/**
* Method to send mail: ("mail", "sendmail", or "smtp").
* @var string
*/
var $Mailer = 'mail';

改成
var $Mailer = 'smtp';

此错误依旧。

我再去搜索QQ的smtp,网页如下
http://kf.qq.com/faq/120322fu63YV130422nqIrqu.html
将$mail->Host = "mail.qq.com";
改成
$mail->Host = "smtp.qq.com";
$mail->Port = '465';
还是报错。
改成
$mail->Port = '587';
报错信息:
邮件发送失败.
错误原因: The following From address failed: 497045318@qq.com : MAIL not accepted from server,530,Must issue a STARTTLS command first.
SMTP server error: Must issue a STARTTLS command first.
SMTP server error: Must issue a STARTTLS command first.

我Youtube了一个教学视频
InMotion Hosting - How to use PHPMailer
https://www.youtube.com/watch?v=JltHLzkghmY
我的代码与他基本一样,与之唯一的区别是我在本地电脑localhost,而不是在服务器上(我还没个人的服务器)我想是不是与这个因素相关。

我想请教各位这是什么原因。十分感谢!如果还有什么好的方法/代码可以用php发送邮件,也请教各位了!


回复讨论(解决方案)

原因已经找到了。
因为当时在测试功能时候,由于一直各种跳错,我就去一行行排错。

//$mail->SMTPAuth = true; // 启用SMTP验证功能
登录后复制

在排错时候,我把上面一行注释掉了,最后忘了把注释去掉。
所以这一行不可或缺

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板