检查是否连接 phpmailer 时捕获 EOF

EOF caught while checking if connected phpmailer

    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;

当我运行这段代码时,我得到这个错误:

Connection: opened 2018-03-05 09:24:25 SERVER -> CLIENT: 2018-03-05 09:24:25 SMTP NOTICE: EOF caught while checking if connected 2018-03-05 09:24:25 Connection: closed 2018-03-05 09:24:25 SMTP Error: Could not connect to SMTP host.

我该如何解决这个问题?

您为 SMTP 提交使用了一个不寻常的端口号,因此请检查您的主机是否使用了正确的端口号。使用 SMTPSecure = 'tls'.

时通常为 587

您在通过另一台主机发送时设置了一个 Gmail 发件人地址;这将导致您无法通过 SPF 检查,并且您的邮件将被阻止或被垃圾邮件过滤。

如果您想发送到列表,请遵循 the mailing list example provided with PHPMailer - 您的代码包含一些可能会导致重复消息的错误。