【发布时间】:2016-08-14 07:56:50
【问题描述】:
我的 php 邮件程序在 localhost 上运行良好,但是当我在 cpanel 上运行相同的代码时,我收到错误消息:SMTP connect() failed
<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = "tls://smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = '********@gmail.com';
$mail->Password = '********';
$mail->Port = 587;
$mail->setFrom('sender@gmail.com', 'Mailer');
$mail->AddAddress('receiver@gmail.com', 'Joe User');
$mail->addReplyTo('sender@gmail.com', 'Information');
$mail->isHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>
请帮助我,我哪里出错了?
【问题讨论】:
-
如果您注释掉对
addAddress的调用,则该消息不会发送给任何人,那么您为什么希望它起作用?!您可以尝试与您收到的错误消息相关联的reading the docs。 -
但是在取消注释 $mail->AddAddress() 时出现错误:SMTP connect() failed
-
不设置收件人就无法发送,不是设置一个导致连接错误!
-
您确认您的 Cpanel 机器已为 OUT 开放端口 587 吗? “SMTP 错误:无法连接到 SMTP 主机。”这也可能显示为 SMTP connect() failed 或 Called Mail() without being connected 在调试输出中。这通常被报告为 PHPMailer 问题,但它几乎总是归结为本地 DNS 故障、防火墙阻止或本地网络上的其他问题。这意味着 PHPMailer 无法联系您在 Host 属性中指定的 SMTP 服务器,但没有说明具体原因。 github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
标签: php email localhost phpmailer cpanel