【问题标题】:Unable to send email with phpMailer SMTP无法使用 phpMailer SMTP 发送电子邮件
【发布时间】:2017-10-05 17:45:39
【问题描述】:

PHP 脚本

require '../PHPMailerAutoload.php';

//Create a new PHPMailer instance
//Passing true to the constructor enables the use of exceptions for error handling
$mail = new PHPMailer(true);
try {
 $mail->Port       = 25;    
 $mail->Timeout = 10;
 $mail->isSMTP();   
 $mail->SMTPDebug = 3;
 $mail->CharSet = 'UTF-8'; 
 $mail->Host       = 'mail1.ClientWeb.com';
 $mail->SMTPAuth   = true; 
 $mail->Username   = 'test_mail@ClientWeb.com'; 
 $mail->Password   = 'pwd';  

 $mail->setFrom('from@example.com', 'First Last');
 $mail->addReplyTo('replyto@example.com', 'First Last');
 $mail->addAddress('keprta.martin@gmail.com', 'Martin Keprta');
 $mail->Subject = 'test';

 $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
 $mail->AltBody = 'This is a plain-text message body';
 $mail->addAttachment('images/phpmailer_mini.png');
 $mail->send();
 echo "Message sent!";
  } catch (phpmailerException $e) {
    echo $e->errorMessage();
  } catch (Exception $e) {
    echo $e->getMessage();
                                     }

问题描述

客户在他的服务器上有一个显然运行的脚本。我正在尝试连接到他的服务器,这是可能的,但是当我尝试发送电子邮件时出现以下错误

2017-05-07 18:31:57 Connection: opening to mail1.warmacher.com:25, timeout=10, options=array ( ) 
2017-05-07 18:31:57 Connection: opened 
2017-05-07 18:32:07 SERVER -> CLIENT: 
2017-05-07 18:32:07 CLIENT -> SERVER: EHLO localhost 
2017-05-07 18:32:17 SERVER -> CLIENT: 
2017-05-07 18:32:17 SMTP ERROR: EHLO command failed: 
2017-05-07 18:32:17 CLIENT -> SERVER: HELO localhost 

据我所知,连接已建立,但由于某种原因未发送电子邮件。

在向这个尊贵的社区提问之前我采取的步骤

  1. 检查是否需要安全性 - 无
  2. 检查端口是否正确 - 25 是否正确
  3. 检查姓名/密码是否正确 - 是。我可以登录到网络邮件 服务器

【问题讨论】:

    标签: php email xampp smtp phpmailer


    【解决方案1】:

    您要连接的邮件服务器有问题。如果我telnet mail1.warmacher.com 25,它会连接,但没有响应。这似乎不是一个问候延迟对策,它只是坏了。您设置的短暂超时不允许 SMTP 允许的最大等待时间(5 分钟),尽管它似乎没有任何帮助。您的代码很好 - 您需要修复邮件服务器。

    【讨论】:

    • 服务器应该没问题。我用这个帐户登录到 webmail 并发送/接收电子邮件。我正在使用 ISP 配置 3,但我无法通过 web-gui 访问邮件服务器。
    • Webmail 不需要 SMTP - 它可以通过 IMAP 读取并使用 sendmail 发送。无论如何,邮件服务器在您尝试发送的端口上没有响应。如果它不能通过 telnet 工作,它也不能通过 PHPMailer 工作;这是服务器问题,不是客户端问题。
    • 这就是我的想法。所以还有两个谜团。
    • 1.服务器上的邮件发送脚本怎么可能已经正常工作了,它正在发送电子邮件 2.什么样的配置是错误的......我应该在邮政服务器上更改什么样的设置? 3.服务器是否有可能只响应域上的 smtp 请求?
    • 它可能通过不同的路由发送,例如,如果您有一个本地邮件服务器充当本地主机上的中继,那么通过 PHP mail() 函数发送将起作用。否则,您应该检查您正在连接的服务器上的邮件日志 - 如果您有权访问。
    【解决方案2】:
    1. 未知的postfix服务器设置引起的问题。(基本上不是问题而是功能)
    2. 当前设置不允许从服务器外部访问 postfix

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2015-09-06
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多