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

XFree_Dom 2014-07-06 12:05:17
用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发送邮件,也请教各位了!
...全文
1275 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
扫地の小沙弥 2018-05-12
  • 打赏
  • 举报
回复
邮局密码是什么 qq密码吗???
qq_22194311 2016-02-27
  • 打赏
  • 举报
回复
可能你的代码中是ssl连接,所以要使用openssl扩展库,在配置php.ini就可以了
baiyj71 2014-12-28
  • 打赏
  • 举报
回复
求最后成功的完整代码,我也在试同样的例子,总是提示“SMTP Error: Could not connect to SMTP host.” qq:241560119
lihongxing1234 2014-10-08
  • 打赏
  • 举报
回复
你好,能给我一份你的这个代码吗 798161229@qq.com
XFree_Dom 2014-07-06
  • 打赏
  • 举报
回复
原因已经找到了。 因为当时在测试功能时候,由于一直各种跳错,我就去一行行排错。
//$mail->SMTPAuth = true; // 启用SMTP验证功能
在排错时候,我把上面一行注释掉了,最后忘了把注释去掉。 所以这一行不可或缺

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧