0
我有一些代码从我的gmail帐户中读取最旧的电子邮件,但我希望它能够读取每封电子邮件。我对python非常陌生,上周我开始学习它。我有很多关于C++的经验,所以我知道我需要什么循环来帮助在python中实现它。什么我添加到此代码,以便它读取每封电子邮件?
我的代码所做的是读取最旧的电子邮件,然后创建一个int来保存主题中的数字,然后从1到10获取一个随机数并打印电子邮件中主题中的数字是否等于随机数。
我希望程序循环并为我的收件箱中的每封电子邮件执行此操作。
import poplib
import string, random
import StringIO, rfc822
import logging
import random
SERVER = "pop.gmail.com"
USER = "XXXXXXXXXXXXXX"
PASSWORD = "XXXXXXXXXXXX"
# connect to server
logging.debug('connecting to ' + SERVER)
server = poplib.POP3_SSL(SERVER)
#server = poplib.POP3(SERVER)
# login
logging.debug('logging in')
server.user(USER)
server.pass_(PASSWORD)
# list items on server
logging.debug('listing emails')
resp, items, octets = server.list()
# download the first message in the list
mail = imaplib.IMAP4_SSL(SMTP_SERVER)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select('inbox')
type, data = mail.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()
first_email_id = int(id_list[0])
latest_email_id = int(id_list[-1])
for i in range(latest_email_id, first_email_id, -1):
id, size = string.split(items[0])
resp, text, octets = server.retr(id)
# convert list to Message object
text = string.join(text, "\n")
file = StringIO.StringIO(text)
message = rfc822.Message(file)
# output message
print(message['From']),
print(message['Subject']),
print(message['Date']),
#print(message.fp.read())
mynumber = message['Subject']
myint = int(mynumber)
print "Let's play a game! I'll choose a number between 0 and 10. Try to guess it!"
python_number = random.randint(0,10)
if python_number == myint:
print "You won! My number was " + str(python_number)
else:
print "You loose! My number was " + str(python_number)
在'#将下列列表中的第一条消息下载到for循环后面放置所有内容。我相信你应该迭代'物品' – wpercy
有人能告诉我我的问题有什么问题吗?我在这个网站上看到了很多基本的问题,没有付出努力,他们得到了很多答案和一堆赞成票。 – math4782
@wpercy,我编辑了我的问题,我在正确的轨道上? – math4782