PHPMailer给出错误“ DATA END命令失败”;和“不接受数据”没有进一步的错误说明 [英] PHPMailer gives error "DATA END command failed" and "data not accepted" without further error explanation

查看:137
本文介绍了PHPMailer给出错误“ DATA END命令失败”;和“不接受数据”没有进一步的错误说明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用此代码发送电子邮件(SMTP_HOST等是在配置中定义的常量,它们都已定义,它使用端口587):

I have tried to send email with this code (SMTP_HOST etc. are constants defined in config, they are all defined, it uses port 587):

    $txt = strip_tags(str_replace(array("<br>","<br\>","<br \>"),"\n",$this->_params['message']));
    // some irrelevant code here (saves record)
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = SMTP_HOST;
    $mail->Port = SMTP_PORT;
    $mail->SMTPAuth = true;
    $mail->Username = $mail->From = SMTP_USER;
    $mail->Password = SMTP_PASS;
    $mail->addReplyTo($this->_params['email'], $this->_params['name']);
    $mail->From = MAIL_FROM;
    $mail->FromName = MAIL_FROM_NAME;
    $mail->addAddress(MAIL_TO);
    $mail->Body = str_replace("\n","<br/>\n",$this->_params['message']);
    $mail->AltBody = $txt;
    $mail->Subject = MAIL_SUBJECT.$this->_params['subject'];
    $mail->isHTML (true);
    $mail->SMTPDebug = 3;
    $ok = $mail->send();

使用PHPMailer版本5.2.7。

With PHPMailer version 5.2.7.

我收到的调试信息(我将所有私人数据都****):

Debug info that I receive (I **** any private data):

2014-07-04 13:57:38 Connection: opening
2014-07-04 13:57:38 Connection: opened
2014-07-04 13:57:38 SERVER -> CLIENT: 220 **** ESMTP Exim 4.82 Fri, 04  Jul 2014 15:57:38 +0200
2014-07-04 13:57:38 CLIENT -> SERVER: EHLO ****
2014-07-04 13:57:38 SERVER -> CLIENT: 250-**** Hello **** [****]
250-SIZE 20971520
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
2014-07-04 13:57:38 CLIENT -> SERVER: AUTH LOGIN
2014-07-04 13:57:38 SERVER -> CLIENT: 334 ****
2014-07-04 13:57:38 CLIENT -> SERVER: ****
2014-07-04 13:57:38 SERVER -> CLIENT: 334 ****
2014-07-04 13:57:38 CLIENT -> SERVER: ****
2014-07-04 13:57:38 SERVER -> CLIENT: 235 Authentication succeeded
2014-07-04 13:57:38 CLIENT -> SERVER: MAIL FROM:<****>
2014-07-04 13:57:38 SERVER -> CLIENT: 250 OK
2014-07-04 13:57:38 CLIENT -> SERVER: RCPT TO:<****>
2014-07-04 13:57:38 SERVER -> CLIENT: 250 Accepted
2014-07-04 13:57:38 CLIENT -> SERVER: DATA
2014-07-04 13:57:38 SERVER -> CLIENT: 354 Enter message, ending with "." on a line by itself
2014-07-04 13:57:38 CLIENT -> SERVER: Date: Fri, 4 Jul 2014 15:57:38 +0200
2014-07-04 13:57:38 CLIENT -> SERVER: To: ****
2014-07-04 13:57:38 CLIENT -> SERVER: From: Automat SNC <****>
2014-07-04 13:57:38 CLIENT -> SERVER: Reply-To: **** <****@koszmail.pl>
2014-07-04 13:57:38 CLIENT -> SERVER: Subject: ****: Contact-form Test test test
2014-07-04 13:57:38 CLIENT -> SERVER: Message-ID: <ff1fbff844bf01ff24f5575e9e362ef1@****>
2014-07-04 13:57:38 CLIENT -> SERVER: X-Priority: 3
2014-07-04 13:57:38 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.7(https://github.com/PHPMailer/PHPMailer/)
2014-07-04 13:57:38 CLIENT -> SERVER: MIME-Version: 1.0
2014-07-04 13:57:38 CLIENT -> SERVER: Content-Type: multipart/alternative;
2014-07-04 13:57:38 CLIENT -> SERVER:   boundary="b1_ff1fbff844bf01ff24f5575e9e362ef1"
2014-07-04 13:57:38 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: --b1_ff1fbff844bf01ff24f5575e9e362ef1
2014-07-04 13:57:38 CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: Test test test
2014-07-04 13:57:38 CLIENT -> SERVER: test test test test
2014-07-04 13:57:38 CLIENT -> SERVER: test
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: --b1_ff1fbff844bf01ff24f5575e9e362ef1
2014-07-04 13:57:38 CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: Test test test
2014-07-04 13:57:38 CLIENT -> SERVER: <br/>
2014-07-04 13:57:38 CLIENT -> SERVER: test test test test
2014-07-04 13:57:38 CLIENT -> SERVER: <br/>
2014-07-04 13:57:38 CLIENT -> SERVER: test
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: --b1_ff1fbff844bf01ff24f5575e9e362ef1--
2014-07-04 13:57:38 CLIENT -> SERVER:
2014-07-04 13:57:38 CLIENT -> SERVER: .
2014-07-04 13:57:48 SERVER -> CLIENT:
2014-07-04 13:57:48 SMTP ERROR: DATA END command failed:
SMTP Error: data not accepted.
2014-07-04 13:57:48 CLIENT -> SERVER: QUIT
2014-07-04 13:57:49 SERVER -> CLIENT: 250 OK id=1X33ze-0007GO-Nc
2014-07-04 13:57:49 SMTP ERROR: QUIT command failed: 250 OK id=1X33ze-0007GO-Nc
2014-07-04 13:57:49 Connection: closed

有人可以提示我这里有什么问题吗?

Can someone give me a hint what can be wrong here?

推荐答案

此SMTP服务器的奇怪行为是由DNS和服务器配置错误引起的。

This strange behavior of SMTP server was caused by mistake in DNS and server configuration.

我们的VPS服务器很少,其中一个域(接收者R)的一个域的子域被委派给另一个域(发送者S)。错误地在R的域S上有一个 A条目(实际上在其他DNS上)。它还错误地设置了S的IP。S(由Direct Admin)配置为处理该R域的电子邮件。由于本地DNS中没有适当的邮箱或MX记录,因此无法执行。

We have few VPS servers and a subdomain of one domain on one of them (receiver R) is delegated to other one (sender S). By mistake there was an "A" entry on S for domain of R (wchich really is on other DNS). It was also wrongfully set with IP of S. And S was configured (by Direct Admin) to handle emails for that R's domain. Which it couldn't do as there are no appropriate mailboxes nor MX record in local DNS.

关闭发件人对收件人域的电子邮件处理,并删除了错误的DNS条目,现在可以。

Turned off email handling for receiver domain by sender and removed wrong DNS entries and now it works.

这篇关于PHPMailer给出错误“ DATA END命令失败”;和“不接受数据”没有进一步的错误说明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆