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

使用C#,C ++或Python从Gmail中读取和解析电子邮件

那鹏
2023-03-14
问题内容

我必须要做一个Windows应用程序,该应用程序会不时访问Gmail帐户并检查是否有新电子邮件。如果有的话,它必须阅读电子邮件的正文和主题(简单的文本电子邮件,没有图像或附件)。

请不要使用付费库,如果使用了其他库,请提供下载路径。

而且我只需要电子邮件正文和主题。因此,如果可以解析来自Gmail的冗长而复杂的邮件,并且仅包含主题和正文的两个字符串,那将是完美的选择。

最后,我只需要使新消息自上次执行以来就可以到达。因此,已读消息可以标记为“已读”,并且仅考虑新消息(标记为“新”)。

该代码可以用Python或C ++编写,但是我更喜欢用C#。

相关问题:

  • 用于Python iMAP电子邮件访问的格式正确的示例?

问题答案:

这将打印未显示消息的主题和正文,并将这些消息标记为可见。

import imaplib
import email

def extract_body(payload):
    if isinstance(payload,str):
        return payload
    else:
        return '\n'.join([extract_body(part.get_payload()) for part in payload])

conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login("user", "password")
conn.select()
typ, data = conn.search(None, 'UNSEEN')
try:
    for num in data[0].split():
        typ, msg_data = conn.fetch(num, '(RFC822)')
        for response_part in msg_data:
            if isinstance(response_part, tuple):
                msg = email.message_from_string(response_part[1])
                subject=msg['subject']                   
                print(subject)
                payload=msg.get_payload()
                body=extract_body(payload)
                print(body)
        typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
finally:
    try:
        conn.close()
    except:
        pass
    conn.logout()

上面的许多代码来自imaplib上的Doug
Hellmann的教程



 类似资料:
  • 问题内容: 我正在编写一个Python脚本来处理Procmail返回的电子邮件。如该问题中所建议,我正在使用以下Procmail配置: 我的process_mail.py脚本正在通过stdin接收电子邮件,如下所示: 我正在尝试以这种方式解析消息: 我想获取诸如“发件人”,“收件人”和“主题”之类的消息字段。但是,消息对象不包含任何这些字段。 我究竟做错了什么? 问题答案: 您必须确保这些行不会意

  • 问题内容: 我希望能够使用Python将GMail中的电子邮件从收件箱移动到另一个文件夹。我正在使用imaplib,无法弄清楚该怎么做。 问题答案: 没有针对IMAP的明确移动命令。您将必须先执行,后跟一个(带有适当的标志以指示删除),最后执行。下面给出的示例用于将消息从一个标签移动到另一个标签。您可能需要添加更多错误检查。

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

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

  • 我正在尝试使用gmail从Delphi发送电子邮件。我有Indy10.5.9.0和Delphi XE3。 我从中获得了示例代码:http://www.andrecelestino.com/delphi-xe-envio-de-e-mail-com-componentes-indy/ 我还尝试了其他示例代码,但结果相同。 我有libeay32.dll和ssleay32.dll从这里:http://w

  • 我试图了解Gmail API的工作原理。我的目标是在用户的收件箱中检索所有电子邮件的列表,并将其下载到。 目前的工作流程如下: > 使用Google提供的框架用OAuth 2.0授权我的iOS应用,我已经完成了这一步,我的应用可以成功授权一个gmail帐户。 下载电子邮件: 从文档来看,这似乎是显示消息列表的API调用: 去找https://www.googleapis.com/gmail/v1/