2016-05-31 161 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