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 轻松发送邮件了 🚀
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人