Вы не опубликовали свой исходный код, но вот мой ответ:
Как получить общее количество сообщений:
(numMsgs, totalSize) = self.conn_pop3.stat()
Как получить конкретное сообщение, зная его номер в почтовом ящике:
(server_msg, body, octets) = self.conn_pop3.retr(number)
Таким образом, вам может понадобиться функция retr , которая возвращает кортеж.
Увидеть
здесь .
Осторожно, он также устанавливает соответствующий адрес электронной почты, как Увидеть на сервере!
Вы, вероятно, можете отменить это, по крайней мере, с помощью IMAP.
И моя реализация электронной почты pop3 lib гласила:
from poplib import POP3
...
if self.pop3_connected:
try:
#------Check if email number is valid----------------------
(numMsgs, totalSize) = self.conn_pop3.stat()
self.debug(200, "Total number of server messages: ", numMsgs)
self.debug(200, "Total size of server messages: ", totalSize)
if number>numMsgs:
self.debug(200, "\nSorry - there aren't that many messages in your inbox\n")
return False
else:
(server_msg, body, octets) = self.conn_pop3.retr(number)
self.debug(200, "Server Message: " , server_msg)
self.debug(200, "Number of Octets: " , octets)
self.debug(200, "Message body:")
for line in body:
print line
#end for
return True
#endif
finally:
self.__disconnect__()
#endif
Также вот соединение POP3, по крайней мере, как я это реализовал ... довольно сложно, используя сравнение строк, но оно работало для моего приложения:
def __connect_pop3__(self):
"""\brief Method for connecting to POP3 server
\return True If connection to POP3 succeeds or if POP3 is already connected
\return False If connection to POP3 fails
"""
#------Check that POP3 is not already connected-----------------------
if not self.pop3_connected:
#------Connect POP3-----------------------------------------------
self.debug(100, 'Connecting POP3 with: ', self.host_name, self.user_name, self.pass_name)
self.conn_pop3 = POP3(self.host_name)
res1 = self.conn_pop3.user(self.user_name)
string1 = str(res1)
self.debug(100, 'User identification result:', string1)
res2 = self.conn_pop3.pass_(self.pass_name)
string2 = str(res2)
self.debug(100, 'Pass identification result:', string2)
#------Check if connection resulted in success--------------------
#------Server on DavMail returns 'User successfully logged on'----
if string2.find('User successfully logged on')<>-1 or string1.find('User successfully logged on')<>-1 :
self.pop3_connected = True
return True
else:
return False
#endif
else:
self.debug(255, 'POP3 already connected')
return True
#endif