国外邮件服务器返回“502 命令未执行”。

国外邮件服务器返回“502 命令未执行”。

我正在使用 Postfix 与外部服务器通信并发送邮件。每次我尝试使用 Postfix 发送邮件时,都会收到此错误:

(host mx2.seznam.cz[77.75.76.32] said: 451 Local Error (in reply to end of DATA command))

经过一段时间的调试,我得到了 SMTP 转录:

220 2.0.0 Seznam SMTP server waiting for your HELO/EHLO
EHLO alpha.tbedrich.cz
250-Email.Seznam.cz - Email zdarma na cely zivot ESMTP
250-8BITMIME
250-SIZE 18000000
250-ENHANCEDSTATUSCODES
250 X-SZNEXTENSIONS
MAIL FROM:<[email protected]> SIZE=1007
250 2.1.0 Ok <[email protected]>
RCPT TO:<[email protected]>
250 2.1.5 Ok <[email protected]>
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176])
    by alpha.tbedrich.cz (Postfix) with ESMTPSA id 8520F401DB
    for <[email protected]>; Thu, 27 Aug 2015 19:09:37 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tbedrich.cz; s=mail;
    t=1440695377; bh=CG6CavtqSpj8fj6WkmsWGRsGNN0Qa3sWp3MV/1BiTCY=;
    h=From:Date:Subject:To:From;
    b=GtnSxBgTLQsBIjn0DTUAm7zgfiIUOJjunmWHeCLSEit+QqyaGy63QzLd4yvzJYNNW
     6Fpc2LySSMB3QfxvhNOaxZZaP1aBUVaqH8nGulPgKeC5B67HgKGIpIP8o8F8oEDZyc
     G7TPnXC6zA62Nr5FzSlmMYpWwQh4HR2RYEJDvFrU=
Received: by lbbtg9 with SMTP id tg9so15579426lbb.1
        for <[email protected]>; Thu, 27 Aug 2015 10:09:36 -0700 (PDT)a
X-Received: by 10.152.21.231 with SMTP id y7mr2710607lae.63.1440695376852;
 Thu, 27 Aug 2015 10:09:36 -0700 (PDT)
MIME-Version: 1.0
From: =?UTF-8?B?VG9tw6HFoSBCZWTFmWljaA==?= <[email protected]>
Date: Thu, 27 Aug 2015 17:09:27 +0000
Message-ID: <CALS8Sqg8HQVmHt2UOiLfRMmkHyzzD2G2nKGPhqnh=3hjKW=NOA@mail.gmail.com>
Subject: test
To: [email protected]
Content-Type: multipart/alternative; boundary=089e0158aea02abfcc051e4e0861

--089e0158aea02abfcc051e4e0861
Content-Type: text/plain; charset=UTF-8



--089e0158aea02abfcc051e4e0861
Content-Type: text/html; charset=UTF-8

<div dir="ltr"><br></div>

--089e0158aea02abfcc051e4e0861--
.
451 Local Error
502 5.5.1 Command ' by ' not implemented.
502 5.5.1 Command ' for' not implemented.
502 5.5.1 Command 'DKIM' not implemented.
502 5.5.1 Command ' t=1' not implemented.
502 5.5.1 Command ' h=F' not implemented.
502 5.5.1 Command ' b=G' not implemented.
502 5.5.1 Command '  6F' not implemented.
502 5.5.1 Command '  G7' not implemented.
502 5.5.1 Command 'Rece' not implemented.
502 5.5.1 Command '    ' not implemented.
502 5.5.1 Command 'X-Re' not implemented.
502 5.5.1 Command ' Thu' not implemented.
502 5.5.1 Command 'MIME' not implemented.
502 5.5.1 Command 'From' not implemented.
502 5.5.1 Command 'Date' not implemented.
502 5.5.1 Command 'Mess' not implemented.
502 5.5.1 Command 'Subj' not implemented.
502 5.5.1 Command 'To: ' not implemented.
502 5.5.1 Command 'Cont' not implemented.
501 Command too short.
502 5.5.1 Command '--08' not implemented.
502 5.5.1 Command 'Cont' not implemented.
501 Command too short.
501 Command too short.
501 Command too short.
502 5.5.1 Command '--08' not implemented.
502 5.5.1 Command 'Cont' not implemented.
501 Command too short.
502 5.5.1 Command '<div' not implemented.
501 Command too short.
502 5.5.1 Command '--08' not implemented.
501 Command too short.
QUIT

为什么外部服务器无法理解通信?我没发现有什么不好。

答案1

收件人的邮件服务器给你提供线索:

451 Local Error

这意味着他们的服务器出了问题,您应该稍后再试。

从您的日志来看,他们的邮件服务器在收到电子邮件内容的第一行后很可能出现故障,并且此后的电子邮件中的每一行都被解释为一个新命令 - 由于它们不是有效的 SMTP 命令,因此失败。

我猜您复制粘贴了电子邮件的内容;如果您一次粘贴一行而不是整封电子邮件,您会在第一行之后立即收到错误消息,而不会收到其余的错误消息,这会使问题变得更加清晰。

由于问题出在他们的邮件服务器,而不是您的邮件服务器,因此您无法修复它。您必须等待,或者给他们打电话。

答案2

这似乎是 CR+LF 问题。您确定在 DATA 中发送了两个行尾控制字符吗?据我所知,并非每个 MTA 都对此敏感。

我认为不应该对 Postfix 进行更改,而应该对原始应用程序(生成消息的应用程序)进行更改。尝试将消息保存在 UNIX(仅 LF)文件中,然后运行cat file |sendmail -i -t​​,接下来使用 将文件转换为 DOS 格式(CR+LF)todos file,然后再运行cat file |sendmail -i -t。检查邮件日志。此测试应该会告诉您问题是否出在这里。

答案3

从评论部分扩展声明

SMTP 事务涉及两方,发送方和接收方。两台服务器在相互通信时必须达成某种协议。当一台服务器抱怨协议不一致时,它们你的服务器或者他们的服务器配置错误

要调试它,请尝试将电子邮件发送到另一台服务器。如果您是问题所在,那么您将无法与其他人通信。还可以尝试通过另一台邮件服务器将电子邮件发送到您的接收器。如果另一台服务器也有同样的问题,那么接收器可能配置错误。

相关内容