在Python中接收邮件通常使用IMAP或POP3协议。以下是使用IMAP和POP3协议接收邮件的基本步骤和示例代码:
使用IMAP接收邮件
1. 导入必要的库:
```python
import imaplib
from email.parser import Parser
from email.header import decode_header
2. 连接到IMAP服务器并登录:
```python
imap_server = 'imap.example.com' 替换为你的IMAP服务器地址
email_user = '' 替换为你的邮箱地址
email_password = 'password' 替换为你的邮箱密码
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(email_user, email_password)
3. 选择收件箱:
```python
mail.select('inbox') 选择收件箱,也可以选择其他邮件夹
4. 获取邮件列表:
```python
status, messages = mail.search(None, 'ALL') 搜索所有邮件
messages = messages.split() 将邮件ID列表转换为整数列表
5. 遍历邮件并获取邮件内容:
```python
for mail_id in messages:
status, msg_data = mail.fetch(mail_id, '(RFC822)') 获取邮件内容
raw_email = msg_data 获取邮件内容
email_message = Parser().parsestr(raw_email) 解析邮件内容
subject = decode_header(email_message['Subject'])
if isinstance(subject, bytes):
subject = subject.decode('utf-8')
print('标题:', subject)
6. 关闭连接:
```python
mail.logout()
使用POP3接收邮件
1. 导入必要的库:
```python
import poplib
from email.parser import Parser
from email.header import decode_header
2. 连接到POP3服务器并登录:
```python
pop_server = 'pop.example.com' 替换为你的POP3服务器地址
email_user = '' 替换为你的邮箱地址
email_password = 'password' 替换为你的邮箱密码
mail = poplib.POP3_SSL(pop_server)
mail.user(email_user)
mail.pass_(email_password)
3. 获取邮件列表:
```python
resp, mail_ids = mail.list()
mail_ids = [int(id) for id in mail_ids]
4. 遍历邮件并获取邮件内容:
```python
for mail_id in mail_ids:
resp, msg_data = mail.retr(mail_id)
raw_email = b'\r\n'.join(msg_data)
email_message = Parser().parsestr(raw_email)
subject = decode_header(email_message['Subject'])
if isinstance(subject, bytes):
subject = subject.decode('utf-8')
print('标题:', subject)
5. 关闭连接:
```python
mail.quit()
请确保在尝试这些代码之前,你的邮箱账户已经开启了IMAP或POP3服务,并且你有正确的邮箱地址和密码。如果你使用的是Gmail或其他邮件服务,可能需要生成一个应用专用密码,因为默认密码可能无法用于第三方应用。