python提取邮件正文
时间: 2023-09-21 18:09:38 浏览: 73
可以使用Python内置的email库和正则表达式来提取邮件正文。下面是一个示例代码:
```python
import imaplib
import email
import re
def extract_body(payload):
if isinstance(payload, str):
return payload
else:
return '\n'.join([extract_body(part.get_payload()) for part in payload])
def get_email_body(username, password, sender, subject):
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(username, password)
mail.select('inbox')
search_criteria = f'(FROM "{sender}" SUBJECT "{subject}")'
_, data = mail.search(None, search_criteria)
mail_ids = data[0].split()
for mail_id in mail_ids:
_, data = mail.fetch(mail_id, '(RFC822)')
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
body = extract_body(email_message)
if body:
return re.sub(r'[\n\r]+', '\n', body.strip())
return None
```
其中,`extract_body()`函数用于从邮件信息中提取正文,`get_email_body()`函数根据发件人和主题搜索邮件,并返回邮件的正文。