iOS 设备中的 SMTP 错误

iOS 设备中的 SMTP 错误

我正在尝试诊断为什么当 iPhone 或 iPad 等 iOS 设备首次设置为使用我们的服务器的电子邮件时,会出现这些错误。我们在设置帐户时从提供商的初始选择中选择了“其他”。输入 IMAP 和 SMTP 服务器名称后,您可以在下面看到连接事务。69.197.220.11 是手机的地址。我们运行 CommuniGate Pro 6.0.10。

  • 日志中的错误是什么10:06:40.691 至 10:06:40.723

  • 当时列出的地址是什么10:06:51.067(10.33.64.161)?

在 Macbook(Mail)或 PC(Outlook、Thunderbird)或 Linux 上设置 IMAP/SMTP 时不会发生错误,或者使用我能够测试的一台 Android 设备时也不会发生错误。协议错误最终导致 iOS 设备的 IP 地址被电子邮件服务器列入黑名单。

系统日志如下:

10:06:40.688 5 SMTP [0.0.0.0]:587 <- [69.197.220.11]:49426 connection request. socket=191
10:06:40.688 5 SMTP new VStream created, 1 total
10:06:40.688 5 SMTP stream thread started
10:06:40.688 4 SMTPI-011473([69.197.220.11]) [192.168.200.100]:587 <- [69.197.220.11]:49426 incoming connection(our domain.net)
10:06:40.688 5 SMTPI-011473([69.197.220.11]) out: 220 ourdomain.net ESMTP CommuniGate Pro 6.0.10\r\n
10:06:40.691 5 SMTPI-011473([69.197.220.11]) inp: \022\003\001
10:06:42.693 5 SMTPI-011473([69.197.220.11]) out: 501 Unknown command\r\n
10:06:42.693 5 SMTPI-011473([69.197.220.11]) inp: \163\001
10:06:44.696 5 SMTPI-011473([69.197.220.11]) out: 501 Unknown command\r\n
10:06:44.696 5 SMTPI-011473([69.197.220.11]) inp:
10:06:46.698 5 SMTPI-011473([69.197.220.11]) out: 501 Unknown command\r\n
10:06:46.698 5 SMTPI-011473([69.197.220.11]) inp: \159\003\001T\135 l
10:06:48.700 5 SMTPI-011473([69.197.220.11]) out: 501 Unknown command\r\n
10:06:48.700 5 SMTPI-011473([69.197.220.11]) inp: \004\225\176d2\217\180\005"]\167\176\182\131N&\183\175\218\167\200\167\245\003\246\005\221
10:06:50.702 5 SMTPI-011473([69.197.220.11]) out: 501 Unknown command\r\n
10:06:50.702 1 SMTPI-011473([69.197.220.11]) Too many protocol errors, aborting
10:06:50.723 4 SMTPI-011473([69.197.220.11]) closing connection
10:06:50.723 4 SMTPI-011473([69.197.220.11]) releasing stream
10:06:50.966 5 SMTP [0.0.0.0]:587 <- [69.197.220.11]:49427 connection request. socket=214
10:06:50.966 4 SMTPI-011474([69.197.220.11]) [192.168.200.100]:587 <- [69.197.220.11]:49427 incoming connection(ourdomain.net)
10:06:50.966 5 SMTPI-011474([69.197.220.11]) out: 220 ourdomain.net ESMTP CommuniGate Pro 6.0.10\r\n
10:06:51.067 5 SMTPI-011474([69.197.220.11]) inp: EHLO [10.233.64.161]
10:06:51.067 5 SMTPI-011474([69.197.220.11]) out: 250-ourdomain.net your name is not [10.233.64.161]\r\n250-DSN\r\n250-SIZE\r\n250-STARTTLS\r\n250-AUTH LOGIN PLAIN CRAM-MD5 GSSAPI\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250 EHLO\r\n
10:06:51.165 5 SMTPI-011474([69.197.220.11]) inp: STARTTLS
10:06:51.165 5 SMTPI-011474([69.197.220.11]) out: 220 please start a TLS connection\r\n
10:06:51.549 4 SMTPI-011474([69.197.220.11]) TLSv1.0 security initiated
10:06:51.635 4 SMTPI-011474([69.197.220.11]) TLS-102107(AES256_SHA) connection accepted for 'ourdomain.net'
10:06:51.865 5 SMTPI-011474([69.197.220.11]) s-inp: EHLO [10.233.64.161]
10:06:51.865 5 SMTPI-011474([69.197.220.11]) s-out: 250-ourdomain.net your name is not [10.233.64.161]\r\n250-DSN\r\n250-SIZE\r\n250-AUTH LOGIN PLAIN CRAM-MD5 GSSAPI\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250 EHLO\r\n
10:06:51.976 5 SMTPI-011474([69.197.220.11]) s-inp: AUTH PLAIN AGZ1ZGRsZXMAMWJpZ2RvZw==
10:06:51.976 5 SMTPI-011474([69.197.220.11]) SASL(PLAIN) ini: \000fuddles\0001bigdog\000
10:06:51.977 2 SMTPI-011474([69.197.220.11]) '[email protected]' connected(CLRTXT) [69.197.220.11]:49427->[192.168.200.100]:587(tls)
10:06:51.977 2 SMTPI-011474([69.197.220.11]) '[email protected]' disconnected ([69.197.220.11]:49427)
10:06:51.977 2 SMTPI-011474([69.197.220.11]) authenticated as [email protected]
10:06:51.977 5 SMTPI-011474([69.197.220.11]) s-out: 235 [email protected] relaying authenticated\r\n
10:06:52.086 5 SMTPI-011474([69.197.220.11]) s-inp: QUIT
10:06:52.086 5 SMTPI-011474([69.197.220.11]) s-out: 221 ourdomain.net CommuniGate Pro SMTP closing connection\r\n
10:06:52.086 4 SMTPI-011474([69.197.220.11]) TLS connection is closing
10:06:52.086 4 SMTPI-011474([69.197.220.11]) closing connection
10:06:52.086 4 SMTPI-011474([69.197.220.11]) releasing stream

答案1

从 10:06:40.691 到 10:06:40.723 的日志中有什么错误?

线

10:06:40.691 5 SMTPI-011473([69.197.220.11]) inp: \022\003\001

是 SSL 握手的一部分。

  • 字节 0 = 022 表示 SSL 记录类型 = 22(SSL3_RT_HANDSHAKE)
  • 字节 1-2 = 0301 表示 SSL 版本 = TLS1_VERSION

这一页以供参考。

但不幸的是,端口 587 上的服务器不与 SSL(SMTPS)通信,而是与启动TLS. 使用 STARTTLS 的服务器期望初始连接将位于未加密通道,然后移动到加密通道。

所以,最初IOS 尝试使用 SMTPS(基于 SSL 协议的 SMTP)进行连接。但是服务器无法理解它,因此它会发出警告,Unknown command直到达到某些限制,然后断开客户端的连接。

由于初始连接被拒绝,IOS 采取回退措施,重新连接使用 STARTTLS 连接到服务器。

10:06:51.165 5 SMTPI-011474([69.197.220.11]) inp: STARTTLS

此时iOS已经成功连接服务器。

时间 10:06:51.067 (10.33.64.161) 列出的地址是什么?

IP 地址 10.33.64.161 似乎是来自互联网提供商的 IP 地址。通常客户端会公布HELO <something><something>是计算机/手机的 IP 地址/主机名

iOS 行为

由于我从未使用过 IOS,所以我无法告诉您哪种 iOS 设置导致了此行为(或者这可能是默认的 iOS 行为)。就您而言,预期行为是直接通过 STARTSSL 连接,绕过 SMTPS 尝试,这样就不会再次被拒绝和列入黑名单。

在评论中,BillThor 确认上述行为是 iOS 的默认行为。

IOS 默认使用 SSL(安全连接),如果连接失败,则提供非安全连接。SSL 连接失败后,用户可选择非安全连接。如果 STARTTLS 可用,则使用它。服务器会记录连接发现中涉及的活动。

解决方案

显而易见的解决方案是配置邮件服务器 - CommuniGate Pro - 这样它就不会将有这种行为的客户端列入黑名单。这种行为不应被视为失败,也不应该将设备列入黑名单。

OP 的解决方法

协议错误阈值和黑名单的设置位于设置 -> 邮件 -> SMTP -> 接收 -> 限制。默认值为Disconnect after 20 errorsDeny access for 15 minutes。我已将我的更改为Disconnect after 100 errorsDeny access for 0 seconds。不确定 0 秒是否正确,但它解决了使用我们的 CommuniGate Pro 服务器在 iOS 设备上初始设置 IMAP 帐户的问题。

相关内容