phpmailer tls错误,当我尝试通过tls发送邮件时,如下面的错误

时间:2013-06-05 16:39:33

标签: php phpmailer

当我尝试通过phpmailer发送邮件时,有一些错误。 像这样:

  

SMTP - >从服务器:250-m1.mydomain.com
  250流水
  250-SIZE 15728640
  250-VRFY
  250-ETRN
  250-STARTTLS
  250 ENHANCEDSTATUSCODES
  250-8BITMIME
  250 DSN
  客户 - > SMTP:STARTTLS
  SMTP - >从服务器:220 2.0.0准备启动TLS
  客户 - > SMTP:EHLO localhost.localdomain
  250流水
  250-SIZE 15728640
  250-VRFY
  250-ETRN
  250-AUTH PLAIN
  250 ENHANCEDSTATUSCODES
  250-8BITMIME
  SMTP - >错误:服务器不接受AUTH:535 5.7.8错误:身份验证失败:身份验证机制无效
  客户 - > SMTP:RSET
  SMTP - >从服务器:250 2.0.0确定
  客户 - > SMTP:MAIL FROM:
  SMTP - >从服务器:250 2.1.0确定
  客户 - > SMTP:RCPT TO:
  SMTP - > FROM SERVER:554 5.7.1:拒绝接力访问
  SMTP - >错误:服务器不接受RCPT:554 5.7.1:拒绝接力访问
  客户 - > SMTP:退出
  SMTP - >从服务器:221 2.0.0再见

我的php代码如下:

<?php
 require_once('class.phpmailer.php');
 $mail = new PHPMailer();
 $mail->IsSMTP();
 $mail->SMTPDebug = 3;
 $mail->SMTPSecure = "tls";
 $mail->SMTPAuth = true;
 $mail->Host = "m1.mydomain.com";
 $mail->Port = 25;
 $mail->Username = "service@mydomain.com";
 $mail->Password = "password";
 $mail->SetFrom('service@mydomain.com', 'service');
 $mail->Subject = "Fine Design - Avise me";
 $mail->Body = "This is very interest email for you";
 $mail->AddAddress("to@domain.com","name");
 if(!$mail->Send()) {
     $error = 'Mail error: '.$mail->ErrorInfo;
     echo "We're sorry, however, an error has occurred. You may manually e-mail us .";
     return false;
 } else {
     echo "Thanks! Your message was successfully sent.";
     return true;
 }
 ?>

但我可以通过foxmail和其他客户发送邮件, 有人能给我一些建议吗?

2 个答案:

答案 0 :(得分:0)

您在端口25上使用tls。 这通常不应该工作,因为端口25通常用于没有ssl / tls的smtp。

答案 1 :(得分:0)

尝试使用端口25和端口587进行测试。 添加:

$mail->SMTPOptions = array(
        'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
); 

我使用它并且在没有SSL的情况下工作正常。