出于某种原因,我们用来发送电子邮件的其中一个网络表格突然停止工作。出现以下错误:
2016-10-17 07:42:15 Connection: opening to smtp.example.org.uk:25, timeout=300, options=array ( )
2016-10-17 07:42:15 Connection: opened
2016-10-17 07:42:15 SERVER -> CLIENT: 220 smtp-ca.example.org.uk ESMTP
2016-10-17 07:42:15 CLIENT -> SERVER: EHLO forms.example.org
2016-10-17 07:42:15 SERVER -> CLIENT: 250-smtp-ca.example.org.uk 250-8BITMIME 250-SIZE 41943040 250 STARTTLS
2016-10-17 07:42:15 CLIENT -> SERVER: STARTTLS
2016-10-17 07:42:15 SERVER -> CLIENT: 220 Go ahead with TLS
2016-10-17 07:42:16 SMTP Error: Could not connect to SMTP host.
2016-10-17 07:42:16 CLIENT -> SERVER: QUIT
2016-10-17 07:42:16 SERVER -> CLIENT: 5Ul2̔4Oi6
2016-10-17 07:42:16 SMTP ERROR: QUIT command failed: 5Ul2̔4Oi6
2016-10-17 07:42:16 Connection: closed'`
以下是我的PHPMailer for config的内容。这适用于本地microapache,但一旦它进入我们的IIS,没有骰子:
$mail->isSMTP();
$mail->Host = 'smtp.example.org.uk'; // Specify main and backup SMTP servers
$mail->SMTPAuth = false; // Enable SMTP authentication
$mail->Port = 25; // TCP port to connect to
$mail->setFrom('noreply@example.org', "example");
$mail->addAddress('b.jones@example.org', 'B JONES'); // Add a recipient
$mail->Subject = 'Referral from: '.$_POST["staffName"]. '.';
$mail->AddEmbeddedImage('img/banner.jpg', 'banner');
$mail->AddEmbeddedImage('img/logo.jpg', 'logo');
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->IsHTML(true);
PHP的其余部分只是向正文添加内容。 (我已经在一些行中添加了示例,省略了smtp主机和东西。)
答案 0 :(得分:0)
首先,您使用的是旧版本的PHPMailer,因此update it。
你的剧本没有错 - 这是一个环境问题。请注意,一旦尝试使用TLS,它就会失败。您是否已从早期版本切换到PHP 5.6+?这通常会导致此问题,因为PHP 5.6及更高版本默认启用证书验证。另一个常见原因是未启用OpenSSL扩展。两者都包含在the PHPMailer troubleshooting guide中。