2016-05-31 158 views
2

我使用以下IMAP命令獲取郵件的大小。使用IMAP命令獲取郵件的大小

「$ FETCH UID RFC822.SIZE \ r \ n」 個

對於某些消息,命令工作正常,並返回郵件大小

「* 3 FETCH(RFC822.SIZE 2376)\ r \ n $ OK成功\ r \ n「

但是對於某些電子郵件來說,它沒有獲取消息的大小。它只返回成功消息但不是大小

這是一些消息的響應。

「$ OK成功\ r \ n」 個

是否有獲取消息的大小任何其他方式?

+0

你的命令不合法。真正的命令必須包括一個指向該消息的參數。什麼是真正的命令? – arnt

+0

實際命令是: 「$ FETCH 1 RFC822.SIZE \ r \ n」 – Mayuresh

+0

'$ FETCH N RFC822.SIZE \ r \ n'將獲取郵箱中第N條消息的大小,而不是帶有UID的消息的N.如果你想基於UID獲取,那麼你需要使用'UID FETCH N RFC822.SIZE \ r \ n' – jstedfast

回答

1

走出一個肢體...你想到的是x uid fetch 1234 rfc822.size爲了學習與UID 1234消息的大小。然而,你發送的是y fetch 1234 rfc822.size,並且如果有少於1234消息在郵箱該命令將無法工作。

我猜對了嗎?

+0

好抓!我沒有注意到他沒有使用正確的語法。 – jstedfast

+0

是的,這是正確的。它解決了這個問題。謝謝你 – Mayuresh

0

如果您沒有收到大小信息,則表示該消息不存在。

+0

否。該消息確實存在。我能夠獲取相同消息的正文和標頭 – Mayuresh

+0

從技術上講,它並不是因爲您要求在特定*索引處的消息大小而不是* uid *。 – jstedfast