Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阅读Python中最新的Hotmail电子邮件_Python_Email_Hotmail - Fatal编程技术网

阅读Python中最新的Hotmail电子邮件

阅读Python中最新的Hotmail电子邮件,python,email,hotmail,Python,Email,Hotmail,我一直在寻找一种使用Python从我的hotmail帐户(特别是from和MESSAGE)获取最新电子邮件的方法。解决方案似乎主要针对gmail,但它并没有像我希望的那样工作 示例1:使用Gmail示例-msg会吐出大量不需要的数据,尝试获取主题、往返返回每个主题的空白 import imaplib import email from email.mime.multipart import MIMEMultipart mail = imaplib.IMAP4_SSL('outlook.offi

我一直在寻找一种使用Python从我的hotmail帐户(特别是from和MESSAGE)获取最新电子邮件的方法。解决方案似乎主要针对gmail,但它并没有像我希望的那样工作

示例1:使用Gmail示例-msg会吐出大量不需要的数据,尝试获取主题、往返返回每个主题的空白

import imaplib
import email
from email.mime.multipart import MIMEMultipart

mail = imaplib.IMAP4_SSL('outlook.office365.com')
mail.login('myemail@hotmail.com', 'password')
mail.list()
mail.select('inbox')

for i in range(1, 5):
    typ, msg_data = mail.fetch(str(i), '(RFC822)')
    for response_part in msg_data:
        if isinstance(response_part, tuple):
            # print(response_part[1])
            msg = email.message_from_string(str(response_part[1]))
            print(msg)
            for header in [ 'subject', 'to', 'from' ]:
                print('%-8s: %s' % (header.upper(), msg[header]))

mail.close()
mail.logout()
示例2:获取最后一个outlook电子邮件内容,但似乎无法获取更多内容(例如最后5个)


你有没有想过如何使用FROM和MESSAGE获取最后5封电子邮件?

在第一个示例中,你是否在
msg=email.MESSAGE\u FROM_字符串(str(response\u part[1])
之后尝试过使用
msg['FROM']
msg['Subject']
分别访问FROM、to和Subject?另外,你能给例子2一个更好的解释吗?例如,您的意思是您无法获取id=6的电子邮件吗?在第一个示例中,您是否在
msg=email.message\u from_字符串(str(response\u part[1])
之后尝试过使用
msg['from']
msg['to']
msg['Subject']
分别访问发件人、收件人和主题?另外,你能给例子2一个更好的解释吗?例如,您的意思是无法获取id=6的电子邮件吗?
import imaplib
msrvr = imaplib.IMAP4_SSL('outlook.office365.com', 993)

unm = 'myemail@hotmail.com'
pwd = 'password'
msrvr.login(unm, pwd)

print(str(len(msrvr.select('inbox'))))

stat,cnt = msrvr.select('inbox')

print(str(len(cnt)))

for i in range(0,5):

    stat,dta = msrvr.fetch(cnt[i], '(BODY[TEXT])')
    print(dta[0][1])

msrvr.close()
msrvr.logout()