使用C#,C ++或Python从Gmail中读取和解析电子邮件
我必须要做一个Windows应用程序,该应用程序会不时访问Gmail帐户并检查是否有新电子邮件。如果有的话,它必须阅读电子邮件的正文和主题(简单的文本电子邮件,没有图像或附件)。
请不要使用付费库,如果使用了其他库,请提供下载路径。
而且我只需要电子邮件正文和主题。因此,如果可以解析来自Gmail的冗长而复杂的邮件,并且仅包含主题和正文的两个字符串,那将是完美的选择。
最后,我只需要使新消息自上次执行以来就可以到达。因此,已读消息可以标记为“已读”,并且仅考虑新消息(标记为“新”)。
该代码可以用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()
上面的许多代码来自imaplib上的Doug
Hellmann的教程。