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

使用Python发送和接收rfc822格式的邮件实例

发布时间:2023-12-24 15:27:18

在Python中,可以使用smtplibemail模块来发送和接收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格式的简单邮件的基本步骤。你可以根据自己的需要进行修改和扩展。