使用Python发送和接收rfc822格式的邮件实例
发布时间:2023-12-24 15:27:18
在Python中,可以使用smtplib和email模块来发送和接收rfc822格式的邮件。
发送邮件的步骤如下:
1. 导入所需的模块:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
2. 创建MIMEMultipart对象,并设置邮件的主题、发件人、收件人等信息:
msg = MIMEMultipart() msg['From'] = 'sender@example.com' msg['To'] = 'recipient@example.com' msg['Subject'] = 'Test Email'
3. 将邮件正文以MIMEText格式添加到MIMEMultipart对象中:
body = 'This is a test email.' msg.attach(MIMEText(body, 'plain'))
4. 创建SMTP连接并发送邮件:
smtpObj = smtplib.SMTP('smtp.example.com', 587)
smtpObj.starttls()
smtpObj.login('sender@example.com', 'password')
smtpObj.send_message(msg)
smtpObj.quit()
接收邮件的步骤如下:
1. 导入所需的模块:
import imaplib import email
2. 连接到IMAP服务器:
mail = imaplib.IMAP4_SSL('imap.example.com')
mail.login('username', 'password')
mail.select('inbox')
3. 搜索邮件,并将邮件的UID列表保存到变量中:
result, uids = mail.search(None, 'ALL') uid_list = uids[0].split()
4. 遍历UID列表,获取每封邮件的内容:
for uid in uid_list:
result, data = mail.fetch(uid, '(RFC822)')
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
print('From:', email_message['From'])
print('Subject:', email_message['Subject'])
print('Body:', email_message.get_payload(decode=True))
上述代码是发送和接收rfc822格式的简单邮件的基本步骤。你可以根据自己的需要进行修改和扩展。
