PHPmailer
在我的localhost上运行得很好,但是当我把它移到生产中时,我遇到了这样的错误:
连接:打开到smtp.gmail.com:587,timeout = 300,options = array ()2016-09-28 12:58:01连接:无法连接到服务器。错误 编号2.“错误通知:stream_socket_client():无法连接到 smtp.gmail.com:587(连接超时)2016-09-28 12:58:01 SMTP 错误:无法连接到服务器:连接超时(110) 2016-09-28 12:58:01 SMTP connect()失败。
我尝试了TLS和SSL,相应地更新了端口。 此外,我运行了快速nmap扫描,它显示端口已正确打开,因此这不是问题
PORT STATE SERVICE
25/tcp filtered smtp
443/tcp open https
465/tcp open smtps
587/tcp open submission
这是我应用的摘录:
public function __construct() {
parent::__construct();
$this->isSMTP();
$this->SMTPAuth = true;
$this->SMTPSecure = 'tls';
$this->Host = MAIL_HOST;
$this->Username = MAIL_USERNAME;
$this->Password = MAIL_PASSWORD;
$this->From = 'myemail';
$this->FromName = 'Name';
$this->addEmbeddedImage('../public/img/message_logo.png', 'logo');
$this->isHTML(true);
$this->Port = 587;
$this->Subject = "SUBJECT";
$this->SMTPDebug = MAIL_SMTP_DEBUG;
}
任何人都知道接下来要检查什么?
答案 0 :(得分:1)
这是一个非常常见的问题,通常是由ISP的出站SMTP阻止造成的,例如: GoDaddy做到了这一点。 nmap扫描的内容是什么? Gmail吗?
通过错误消息内容,我还猜测您正在使用旧版本的PHPMailer。
the PHPMailer troubleshooting guide中介绍了诊断此类问题。
答案 1 :(得分:0)
不了解GMail,但使用Office 365我需要禁用SSL检查。
public class Assessments
{
public Assessments()
{
Results = new List<AssessmentResult>();
}
public List<AssessmentResult> Results { get; set; }
}
编辑:您可能希望在禁用SSL对等验证之前确保信任主机。