python发送邮件接收邮件示例分享


当然,我可以为你提供一个简洁的Python示例,展示如何使用`smtplib`和`email`模块来发送邮件,以及使用`imaplib`来接收邮件。请注意,为了运行这些示例,你需要有有效的SMTP和IMAP服务器信息,比如Gmail、Outlook等。

### 发送邮件示例


import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 发件人信息
sender_email = "your_email@example.com"
password = "your_password"  # 注意:实际使用中应避免硬编码密码

# 收件人信息
receiver_email = "receiver_email@example.com"

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = "测试邮件"

# 邮件正文
body = "这是一个测试邮件。"
msg.attach(MIMEText(body, 'plain'))

# SMTP服务器配置
server = smtplib.SMTP('smtp.example.com', 587)  # 根据你的邮箱服务器调整
server.starttls()  # 开启TLS
server.login(sender_email, password)

# 发送邮件
text = msg.as_string()
server.sendmail(sender_email, receiver_email, text)

# 关闭服务器连接
server.quit()

print("邮件发送成功!")

### 接收邮件示例

请注意,由于`imaplib`直接操作比较底层,通常我们会使用`imapclient`或`email`模块中的`imaplib`配合更高级的库如`mailbox`来处理。这里提供一个基本的`imaplib`示例来接收邮件的邮件主题列表。


import imaplib
import email

# IMAP服务器配置
mail = imaplib.IMAP4_SSL('imap.example.com')  # 根据你的邮箱服务器调整
mail.login('your_email@example.com', 'your_password')  # 替换为你的邮箱和密码

# 选择邮箱中的"INBOX"
mail.select("inbox")  # 邮箱中的收件箱

# 搜索邮件,这里以未读邮件为例
status, messages = mail.search(None, 'ALL')
messages = messages[0].split()

# 遍历邮件
for mail_id in messages:
    _, msg_data = mail.fetch(mail_id, '(RFC822)')

    # 解析邮件
    for response_part in msg_data:
        if isinstance(response_part, tuple):
            msg = email.message_from_bytes(response_part[1])
            email_subject = msg['subject']
            email_from = msg['from']
            print('From:', email_from)
            print('Subject:', email_subject)

# 关闭连接
mail.close()
mail.logout()

请确保在真实环境中使用这些代码时,根据你的邮箱服务(如Gmail、Outlook等)调整SMTP和IMAP服务器的配置,并注意保护你的账号安全,避免在代码中硬编码密码等敏感信息。