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

php中文网
发布: 2016-06-23 13:54:38
原创
2464人浏览过

用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发送邮件,也请教各位了!

挖错网
挖错网

一款支持文本、图片、视频纠错和AIGC检测的内容审核校对平台。

挖错网 28
查看详情 挖错网

回复讨论(解决方案)

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

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

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号