对于某些带有奇怪 smtp 日志的地址,Smtp 电子邮件发送失败

问题描述

我看到一个奇怪的问题,其中电子邮件被发送到大多数电子邮件地址,但由于此异常而失败

连接尝试失败,因为连接方在一段时间后没有正确响应,或者因为连接的主机没有响应而建立连接失败。

成功发送电子邮件的 SMTP 日志(敏感数据已删除

Connected to smtp://HOST_NAME_GOES_HERE:25/?starttls=when-available
S: 220 HOST_ID.mail.protection.outlook.com Microsoft ESMTP MAIL Service ready at Thu,8 Jul 2021 16:17:25 +0000
C: EHLO [INNER_HOST_IP]
S: 250-HOST_ID.mail.protection.outlook.com Hello [HOST_IP]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 SMTP server ready
C: EHLO [INNER_HOST_IP]
S: 250-HOST_ID.mail.protection.outlook.com Hello [HOST_IP]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: MAIL FROM:<FROM_EMAIL_ADDRESS> SIZE=1449
C: RCPT TO:<TO_EMAIL_ADDRESS>
S: 250 2.1.0 Sender OK
S: 250 2.1.5 Recipient OK
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
C: From: FROM_NAME <FROM_EMAIL_ADDRESS>
C: To: TO_EMAIL_ADDRESS
C: Subject: Email Subject
C: Date: Thu,08 Jul 2021 16:17:26 +0000
C: MIME-Version: 1.0
C: Content-Type: text/html; charset=us-ascii
C: 
C: <html>
C: <body>
C: <p>Hello</p>
C: .
S: 250 2.6.0 <13ca1966-3710-4ac5-89a1-0307450df835@IDENTIFIER.eop-EUR01.prod.protection.outlook.com> [InternalId=6373731476739,Hostname=IDENTIFIER.GBRP265.PROD.outlook.com] 9026 bytes in 0.121,72.458 KB/sec Queued mail for delivery

但是当发送到失败的电子邮件时,smtp 日志中唯一出现的是

C: MAIL FROM:<FROM_EMAIL_ADDRESS> SIZE=1475
C: RCPT TO:<TO_EMAIL_ADDRESS>

有谁知道这是什么意思,或者我可以如何调试它?

电子邮件是通过 c# SmtpClient 发送的,并且如上所述适用于大多数电子邮件

解决方法

网络编程的现实是你会得到如下错误:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者因为连接的主机没有响应而建立连接失败。

有时,您唯一能做的就是重新连接并重试。

该错误与电子邮件地址无关。这只是因为远程主机未能及时响应(通常是因为连接以某种方式丢失)导致 TCP/IP 连接超时时发生的错误。