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

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

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

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

最后,我只需要从上一次执行以来得到新的消息.因此,读取的消息可以被标记为“读取”,并且仅考虑新消息(标记为“新”).

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

相关问题:

> Properly formatted example for Python iMAP email access?

最佳答案
这将打印未看到的消息的主题和正文,并标记这些消息.

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或Python从Gmail读取和解析电子邮件 - 代码日志