c# - 使用 C#、C++ 或 Python 从 Gmail 读取和解析电子邮件

标签 c# python email gmail

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

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

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

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

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

相关问题:

最佳答案

这会打印未查看消息的主题和正文,并将这些消息标记为已查看。

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()

上面的大部分代码来自Doug Hellmann's tutorial on imaplib .

关于c# - 使用 C#、C++ 或 Python 从 Gmail 读取和解析电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792623/

相关文章:

ios - 将 CollectionView 照片传递到电子邮件附件 iOS swift

c# - 命名空间与 WCF 的相似名称混淆

c# - 组合多个列表

c# - 用于颜色提取 EMGUCV 的图像 HSV 的取值范围

python - 导入数字 : No module named Numeric in F2PY 失败

python - Golang 测试中的 fixture

c# - 从列表创建 HTML 表格

python - 创建装饰器取决于 kwargs 参数作为参数

html - Sendgrid 发送不带嵌入代码的 html 电子邮件

c# - 如何通过 C# asp.net 发送邮件联系表单