AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 900350
Accepted
Mike B
Mike B
Asked: 2018-03-07 14:45:29 +0800 CST2018-03-07 14:45:29 +0800 CST 2018-03-07 14:45:29 +0800 CST

此 SMTP 对话的哪一方是正确的?

  • 772

我有一个奇怪的场景,两台邮件服务器相互通信,需要帮助确定哪一台运行正确。

解释起来有点复杂,所以我认为 SMTP 对话可能是描述它的最简单方式。在这种情况下,mailserver1.foo.com 试图将消息传递给 securityappliance.foo.com。

SMTP 工作流程如下所示:

220 securityappliance.foo.com ESMTP Sendmail 8.14.4/8.14.4; Tue, 6 Mar 2018 14:21:53 -0800 
EHLO mailserver1.foo.com
250-securityappliance.foo.com Hello mailserver1.foo.com [1.1.1.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
MAIL FROM:<[email protected]>
250 2.1.0 <[email protected]>... Sender ok
RCPT TO:<[email protected]>
250 2.1.5 <[email protected]>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
X-Example-Header-Blah: Blah
From: <[email protected]>
To: <[email protected]>
Subject: Message #1. I expect this to fail and am not concerned about that. 

Extra text/attachments.
.
550 5.3.0 Requested action on message failed; message rejected
MAIL FROM:<[email protected]>
557 5.3.0 Milter Implementation Error: Invalid argument passed

因此,我们有两条消息作为同一个 SMTP 连接的一部分在单个文件中传递。第一条消息导致 550 错误(我们知道为什么会这样)。然后上游邮件服务器立即提交另一个MAIL FROM:命令并被拒绝(因为安全设备认为它是同一事务的一部分。

上游服务器是否需要RSET在发送完全独立的消息之前发出命令?或者接收安全设备是否应该了解电子邮件完全不同,而不是将其视为消息 #1 的一部分?

我希望这是有道理的。我很乐意澄清。我正在尝试确定哪个最终实体是正确的,以便我可以使用适当的支持资源。

smtp
  • 1 1 个回答
  • 200 Views

1 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2018-03-07T15:08:45+08:002018-03-07T15:08:45+08:00

    设备坏了。

    RFC 5321 非常清楚,在 DATA 命令之后,所有状态都会重置,无论邮件消息是被接受还是被拒绝。

    从第 4.1.1.4 节:

    收到邮件数据结束指示需要服务器处理存储的邮件交易信息。该处理消耗反向路径缓冲区、正向路径缓冲区和邮件数据缓冲区中的信息,并且在该命令完成时这些缓冲区被清除。如果处理成功,接收者必须发送一个 OK 回复。如果处理失败,接收者必须发送失败回复。

    (强调我的)

    这不是一个新的要求。RFC 2821 也说了同样的话。


    根据输出,我猜该设备有一个损坏的 milter,它正在搞砸邮件处理。Sendmail 通常单独获得 RFC 合规性权利。

    • 4

相关问题

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 如何将 SMTP 直接从 IIS 6.0 服务器中继到 Exchange 2003 服务器

  • 使用 telnet 或 netcat 发送带有附件的电子邮件

  • 我应该使用什么策略在 linux 上安装 smtp 服务器?用于多线程服务

  • 适用于 Linux 的 SMTP 服务器,配置简单

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve