Email

iOS 設備的 SMTP 錯誤

  • December 15, 2014

我正在嘗試診斷為什麼當 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(郵件)或 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]) 'fuddles@ourdomain.net' connected(CLRTXT) [69.197.220.11]:49427->[192.168.200.100]:587(tls)
10:06:51.977 2 SMTPI-011474([69.197.220.11]) 'fuddles@ourdomain.net' disconnected ([69.197.220.11]:49427)
10:06:51.977 2 SMTPI-011474([69.197.220.11]) authenticated as fuddles@ourdomain.net
10:06:51.977 5 SMTPI-011474([69.197.220.11]) s-out: 235 fuddles@ourdomain.net 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

從 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) 對話,而是與STARTTLS對話。使用 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 似乎是來自 Internet 提供商的 IP 地址。通常客戶端會HELO <something><something>電腦/手機的IP地址/主機名來宣布

iOS 行為

由於我從未使用過 IOS,所以我無法告訴您是什麼 iOS 設置導致了這種行為(或者這可能是預設的 iOS 行為)。在您的情況下,預期的行為是通過 STARTSSL 直接連接,繞過 SMTPS 嘗試,因此它不會被拒絕並再次列入黑名單。

在評論中,BillThor 確認上述行為是 iOS 的預設行為。

IOS 預設為 SSL(安全連接),如果失敗,則提供不安全的連接。SSL 連接失敗後,使用者可以選擇不安全地連接。如果 STARTTLS 可用,則使用它。伺服器正在記錄連接發現中涉及的活動。

解決方案

顯而易見的解決方案是配置郵件伺服器 - CommuniGate Pro -,因此它不會將這樣行為的客戶端列入黑名單。該行為不應被視為失敗,也不應將設備列入黑名單。

OP的解決方法

協議錯誤門檻值和被列入黑名單的設置位於Settings-> Mail -> SMTP -> Receiving -> Limits中。預設值為Disconnect after 20 errorsDeny access for 15 minutes。我已將我的更改為Disconnect after 100 errorsand Deny access for 0 seconds。不確定 0 秒,但它已經解決了使用 CommuniGate Pro 伺服器在 iOS 設備上初始設置 IMAP 帳戶的問題。

引用自:https://serverfault.com/questions/650725