在检查连接的phpmailer时是否捕获了EOF

时间:2018-03-05 09:29:00

标签: php smtp phpmailer starttls

    require 'PHPMailerAutoload.php';

    $mail = new PHPMailer;
    $mail->SMTPDebug = 3;                               // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'myhost';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'myusername';                 // SMTP username
    $mail->Password = 'mypassword';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 1060;                                    // TCP port to connect to
    $mail->setFrom('test@gmail.com', 'test');
    $mail->isHTML(true); // Set email format to HTML


    $mail->addAddress('test@gmail.com');    // Add a recipient  

    for($i=0;$i<1;$i++){
      $mail->Subject    = "test bulk email ".$i;
      $mail->Body       = "this is email ".$i;


      if(!$mail->Send()) 
      {
          $error_message = "Mailer Error: " . $mail->ErrorInfo;
      }
}

echo $error_message;

当我运行此代码时,我收到此错误:

  

连接:打开2018-03-05 09:24:25 SERVER - &gt;客户端:2018-03-05 09:24:25 SMTP注意:检查是否连接EOF 2018-03-05 09:24:25连接:关闭2018-03-05 09:24:25 SMTP错误:无法连接到SMTP主机。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您使用不常见的端口号进行SMTP提交,因此请检查您是否拥有适合您主机的端口号。使用SMTPSecure = 'tls'时通常为587。

您在通过其他主机发送时从地址设置gmail;这会导致您的SPF检查失败,您的邮件将被阻止或被垃圾邮件过滤。

如果您想发送到列表,请按照the mailing list example provided with PHPMailer - 您的代码包含一些可能导致重复邮件的错误。