当前位置: 首页 > 面试题库 >

如何使用Python 3阅读电子邮件

方博
2023-03-14
问题内容

现在我在这里

 import imaplib
 mail = imaplib.IMAP4_SSL('imap.gmail.com')
 mail.login('login@gmail.com', 'password')
 mail.list()
 # Out: list of "folders" aka labels in gmail.
 mail.select("inbox") # connect to inbox.
 #Get an email
 result, data = mail.uid('fetch', b'1', '(RFC822)')
    raw_email = data[0][1]
    email_message = email.message_from_bytes(raw_email)
    maintype = email_message.get_content_maintype()
    #HERE COMES TROUBLES - if hmtl will be base64 string
    if maintype == 'multipart':
        for part in email_message.get_payload():
            print(part.get_content_maintype())
            if part.get_content_maintype() == 'text':
                html = str(part.get_payload())
    elif maintype == 'text':
        html = str(email_message.get_payload())

    #Now I Can parse HTML
    if html is not None:
        soup = BeautifulSoup(html, 'html.parser')

一些字母带有base64编码。怎么解码呢?
base64.b64encode(some_string)-没有帮助


问题答案:
import email

raw_email = data[0][1]
email_message = email.message_from_string(raw_email)

print email_message['To']

print email.utils.parseaddr(email_message['From']) # for parsing "Yuji Tomita" <yuji@grovemade.com>

print email_message.items() # print all headers


def get_first_text_block(self, email_message_instance):
maintype = email_message_instance.get_content_maintype()
if maintype == 'multipart':
    for part in email_message_instance.get_payload():
        if part.get_content_maintype() == 'text':
            return part.get_payload()
elif maintype == 'text':
    return email_message_instance.get_payload()

**我没有写这个取自https://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example-
with-gmail/



 类似资料:
  • 问题内容: 我正在使用javamail,但无法从Gmail电子邮件中获取HTML。我有以下内容: 上面所有方法都可以,但是我无法打印或获取实际的HTML或文本电子邮件。我只是得到某种InputStream,如何轻松处理以获得原始的电子邮件HTML? 我也尝试遍历消息,但这并没有使我走得太远: } 谢谢大家的帮助。 问题答案: 该对象包含电子邮件的正文。您需要阅读整个流,才能阅读整个消息。例如,该S

  • 我正在创建一个应用程序,在其中我想阅读所有电子邮件并希望在列表视图中显示。我一直在寻找,但找不到任何合适的方法。我试过下面的代码: 但它返回电子邮件地址,如果我想阅读实际的电子邮件怎么办?有什么办法吗?Android API会公开这一点吗?还有一件事,在下面的一个地方我发现了获取电子邮件的方法 但游标返回 null。我相信没有办法从Android设备读取电子邮件。可能是电子邮件被保存在该应用程序(

  • 我正在使用JavaMail 1.4.1(我已经升级到1.4.5版本,但有同样的问题)从一个电子邮件帐户读取消息,但我在内容编码方面有问题: 一些消息被正确读取,但其他消息由于编码不合适而具有奇怪的字符。我意识到它不适用于特定的内容类型。 如果content entType是以下任何一个,它都能很好地工作: > 文本/普通;charset=ISO-8859-1 charset="iso-8859-1

  • IM工作在一个小部件,显示未读电子邮件计数的Gmail和其他电子邮件帐户设置在智能手机。我使用谷歌邮件API为Gmail和它的作品查找,但我没有得到如何与正常的电子邮件应用程序的工作。 我尝试使用帐户管理器获取登录凭据并自己检索信息,但它没有运行,因为我无法获取任何密码。只需验证令牌。我在谷歌上找不到任何关于如何使用普通电子邮件帐户的解决方案,这些帐户不是来自谷歌邮件。 更新:我试图获得密码与此功

  • 问题内容: 我在网站上使用PHP,并且想添加电子邮件功能。 我已经安装了WAMPSERVER。 如何使用PHP发送电子邮件? 问题答案: 使用PHP的功能是可能的。请记住,邮件功能在本地服务器上不起作用。

  • 我正在使用Laravel 7,我想使用sendemail驱动程序和Laravel Mail Facade发送电子邮件,因为当我使用php邮件功能时,它可以工作,但我想使用Laravel Mail Facade。 这是我的. env文件电子邮件配置 这是我在config/mail中的默认邮件。php 什么是正确的配置?如何使其工作?