欢迎访问宙启技术站
智能推送

Python中如何使用email.message模块发送和接收电子邮件

发布时间:2023-12-27 17:08:59

在Python中,可以使用email.message模块来发送和接收电子邮件。该模块提供了创建、解析和处理电子邮件的功能。

发送电子邮件

要发送电子邮件,需要使用SMTP模块来连接到邮件服务器,并使用email.message模块创建邮件消息对象。以下是一个简单的例子:

import smtplib
from email.message import EmailMessage

# 创建邮件消息对象
msg = EmailMessage()
msg['Subject'] = 'Hello World' # 设置邮件主题
msg['From'] = 'sender@example.com' # 设置发件人
msg['To'] = 'recipient@example.com' # 设置收件人

# 设置邮件内容
msg.set_content('This is the body of the email.')

# 连接到邮件服务器
smtp = smtplib.SMTP('mail.example.com', 587) # 例如:Gmail的SMTP服务器地址是smtp.gmail.com,端口是587
smtp.starttls() # 开启TLS加密连接
smtp.login('sender@example.com', 'password') # 输入发件人的邮箱和密码

# 发送邮件
smtp.send_message(msg)

# 关闭连接
smtp.quit()

接收电子邮件

要接收电子邮件,需要使用IMAPPOP3模块来连接到邮件服务器,并使用email.message模块解析邮件消息。以下是一个简单的例子:

import imaplib
import email

# 链接到邮件服务器
imap = imaplib.IMAP4_SSL('imap.example.com') # 例如:Gmail的IMAP服务器地址是imap.gmail.com
imap.login('user@example.com', 'password') # 输入邮箱和密码
imap.select('INBOX') # 选择收件箱

# 搜索邮件
status, response = imap.search(None, 'ALL') # 搜索所有邮件
email_ids = response[0].split()

for email_id in email_ids:
    status, msg_data = imap.fetch(email_id, '(RFC822)') # 获取邮件内容
    msg = email.message_from_bytes(msg_data[0][1]) # 解析邮件消息
    
    # 打印邮件信息
    print(f'Subject: {msg["Subject"]}')
    print(f'From: {msg["From"]}')
    print(f'To: {msg["To"]}')
    print(f'Body: {msg.get_body()}')

# 关闭连接
imap.logout()

这是一个简单的例子,实际上,你还可以添加更多的功能,如附件的发送和接收、发送HTML格式的邮件等。

总结

email.message模块提供了创建、解析和处理电子邮件的功能。通过使用SMTP模块,你可以发送电子邮件。通过使用IMAPPOP3模块,你可以接收电子邮件。希望这个简单的例子能帮助你理解如何在Python中使用email.message模块发送和接收电子邮件。