Python操作邮件
在 Python 中,你可以使用 smtplib 发送电子邮件,并使用 email 模块来构建邮件内容。下面是一个完整的示例,展示如何使用 SMTP 服务器发送电子邮件。
发送 Email 的步骤
 1. 连接 SMTP 服务器(如 Gmail、Outlook、QQ 邮箱等)。
 2. 构建邮件内容(支持纯文本或 HTML)。
 3. 发送邮件。
代码示例:使用 Gmail SMTP 发送邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# SMTP 服务器配置(以 Gmail 为例)
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587  # TLS 端口,使用 465 代表 SSL
EMAIL_ACCOUNT = "your_email@gmail.com"  # 你的邮箱
EMAIL_PASSWORD = "your_app_password"  # 你的 SMTP 授权码(不是邮箱密码)
# 收件人信息
TO_EMAIL = "recipient@example.com"
SUBJECT = "测试邮件"
BODY = "你好,这是一封测试邮件,使用 Python 发送。"
def send_email():
    try:
        # 创建邮件对象
        msg = MIMEMultipart()
        msg["From"] = EMAIL_ACCOUNT
        msg["To"] = TO_EMAIL
        msg["Subject"] = SUBJECT
        # 添加邮件正文
        msg.attach(MIMEText(BODY, "plain"))
        # 连接 SMTP 服务器
        server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        server.starttls()  # 启用 TLS 加密
        server.login(EMAIL_ACCOUNT, EMAIL_PASSWORD)  # 登录 SMTP 服务器
        server.sendmail(EMAIL_ACCOUNT, TO_EMAIL, msg.as_string())  # 发送邮件
        server.quit()  # 关闭连接
        print("邮件发送成功!")
    except Exception as e:
        print(f"邮件发送失败: {e}")
# 发送邮件
send_email()
不同邮箱的 SMTP 配置
| 邮箱提供商 | SMTP 服务器 | 端口(TLS) | 端口(SSL) | 
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | 465 | 
| Outlook/Hotmail | smtp.office365.com | 587 | 465 | 
| QQ 邮箱 | smtp.qq.com | 587 | 465 | 
| 163 邮箱 | smtp.163.com | 25 | 465 | 
| Yahoo | smtp.mail.yahoo.com | 587 | 465 | 
⚠ 注意:
 • Gmail 需要开启“允许低安全性应用访问”,或者使用应用专用密码(App Password)。
 • QQ 邮箱和 163 邮箱 需要在设置里开启 SMTP服务 并获取授权码,作为 EMAIL_PASSWORD。
 • 企业邮箱 可能需要不同的 SMTP 服务器地址,请查阅官方文档。
发送 HTML 邮件
如果想要发送 HTML 格式的邮件,可以修改 MIMEText 的类型:
html_body = """\
<html>
  <body>
    <h1>你好,</h1>
    <p>这是一封 <b>HTML</b> 格式的邮件。</p>
  </body>
</html>
"""
msg.attach(MIMEText(html_body, "html"))  # 改为 "html" 格式
发送带附件的邮件
如果需要发送带附件的邮件,可以使用 MIMEApplication:
from email.mime.base import MIMEBase
from email import encoders
# 添加附件
file_path = "example.pdf"
with open(file_path, "rb") as attachment:
    part = MIMEBase("application", "octet-stream")
    part.set_payload(attachment.read())
encoders.encode_base64(part)  # Base64 编码
part.add_header("Content-Disposition", f"attachment; filename={file_path}")
msg.attach(part)
总结
 • 连接 SMTP 服务器并登录
 • 构建邮件内容(支持文本、HTML、附件)
 • 发送邮件并关闭连接
这样,你就可以用 Python 轻松发送邮件了 🚀
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号