如何阅读Python 3中的电子邮件内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何阅读Python 3中的电子邮件内容相关的知识,希望对你有一定的参考价值。
我已经尝试了很多代码来访问和阅读电子邮件内容,例如,关于Gmail我只能进行身份验证,而使用Outlook我有能够读取电子邮件的代码,但它已加密...但现在它只访问电子邮件而不输出加密信息。所以我需要帮助来解决这个问题。谢谢
这是代码:
import imaplib
import base64
email_user = input('Email: ')
email_pass = input('Password: ')
M = imaplib.IMAP4_SSL('imap-mail.outlook.com', 993)
M.login(email_user, email_pass)
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
num1 = base64.b64decode(num1)
data1 = base64.b64decode(data)
print('Message %s
%s
' % (num, data[0][1]))
M.close()
M.logout()
答案
无论如何,我已经检查了你的代码,并且有几条评论。第一个是当你在这里粘贴代码时,似乎已经删除了逗号。我试图把它们放回去,所以检查我的代码是否与你的代码匹配。请记住,如果无法访问Outlook,我无法测试我的建议。
import imaplib
import base64
email_user = input('Email: ')
email_pass = input('Password: ')
M = imaplib.IMAP4_SSL('imap-mail.outlook.com', 993)
M.login(email_user, email_pass)
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)') # data is being redefined here, that's probably not right
num1 = base64.b64decode(num1) # should this be (num) rather than (num1) ?
data1 = base64.b64decode(data)
print('Message %s
%s
' % (num, data[0][1])) # don't you want to print num1 and data1 here?
M.close()
M.logout()
假设正确重构,您可以在第10行调用消息列表数据,但随后将调用fetch()的结果重新分配给第13行的数据。
在第14行,您解码num1,尚未定义。我不确定数字是否需要解码,这看起来有点奇怪。
在第16行,您打印的是编码值,而不是您已解码的值。我想你可能想要这样的东西
import imaplib
import base64
email_user = input('Email: ')
email_pass = input('Password: ')
M = imaplib.IMAP4_SSL('imap-mail.outlook.com', 993)
M.login(email_user, email_pass)
M.select()
typ, message_numbers = M.search(None, 'ALL') # change variable name, and use new name in for loop
for num in message_numbers[0].split():
typ, data = M.fetch(num, '(RFC822)')
# num1 = base64.b64decode(num) # unnecessary, I think
print(data) # check what you've actually got. That will help with the next line
data1 = base64.b64decode(data[0][1])
print('Message %s
%s
' % (num, data1))
M.close()
M.logout()
希望有所帮助。
以上是关于如何阅读Python 3中的电子邮件内容的主要内容,如果未能解决你的问题,请参考以下文章