
Python 编程怎么自动化读取电邮?
Python可以使用标准库中的imaplib模块来实现手动读取电邮。imaplib模块提供了IMAP合同的客户端访问插口,可以拿来联接到邮箱服务器,读取电邮信息,并进行相应的处理。
下面是一个简单的示例代码,演示怎么使用Python自动化读取电邮:
import imaplib
import email
from email.header import decode_header
# 邮箱信息
imap_server = 'imap.example.com'
imap_port = 993

username = 'your_email@example.com'
password = 'your_password'
# 连接邮箱服务器
imap = imaplib.IMAP4_SSL(imap_server, imap_port)
imap.login(username, password)
# 选择邮箱中的收件箱

imap.select('INBOX')
# 搜索未读邮件
status, response = imap.search(None, 'UNSEEN')
unread_msg_nums = response[0].split()
# 遍历未读邮件
for msg_num in unread_msg_nums:

status, msg_data = imap.fetch(msg_num, '(RFC822)')
msg = email.message_from_bytes(msg_data[0][1])
# 获取邮件主题
subject = decode_header(msg['Subject'])[0][0]
if isinstance(subject, bytes):
subject = subject.decode()

# 获取发件人
sender = decode_header(msg['From'])[0][0]
if isinstance(sender, bytes):
sender = sender.decode()
# 输出邮件信息
print('Subject:', subject)
print('From:', sender)

print('Message:')
print(msg.get_payload())
# 关闭连接
imap.close()
imap.logout()
在这个示例中,我们使用IMAP合同联接到邮箱服务器,并选择收件箱。然后,我们搜索未读电邮,并遍历每封电邮。对于每封电邮,我们使用email模块解析电邮信息,包括电邮主题、发件人和电邮内容,并将它们输出到控制台。
需要注意的是,该示例代码中使用了IMAP合同,因此须要先确保邮箱服务器支持IMAP合同,并开启了IMAP服务。另外,示例代码中的电邮信息是通过控制台输出的,你可以将它们保存到数据库或其他文件中,或者使用它们进行其他操作。