jpn*_*ini 19 c# python email gmail
我必须做一个Windows应用程序,有时会访问Gmail帐户并检查是否有新的电子邮件.如果有,它必须阅读电子邮件正文和主题(简单的文本电子邮件,没有图像或附件).
请不要使用付费库,如果使用任何其他库,请提供下载路径.
我只需要电子邮件正文和主题.因此,如果可以解析来自Gmail的长而复杂的消息,并且只有两个包含主题和正文的字符串,那么它将是完美的.
最后,我只需要在上次执行后获得新消息.因此,读取消息可以标记为"已读",并且仅考虑新消息(标记为"新").
代码可以用Python或C++编写,但我更喜欢C#.
相关问题:
unu*_*tbu 18
这将打印看不见的消息的主题和正文,并将这些消息标记为已显示.
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关于imaplib的教程.
| 归档时间: | 
 | 
| 查看次数: | 22387 次 | 
| 最近记录: |