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 轻松发送邮件了 🚀

posted on   朝朝暮Mu  阅读(18)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示