在日常开发或工作中,我们经常需要通过程序自动发送邮件,比如系统告警、用户注册验证、定时报表等。Python 提供了强大的内置库 email 和 smtplib,可以轻松实现邮件的构建与发送。本文将从零开始,详细讲解如何使用 Python email库 发送各种类型的邮件,即使你是编程小白也能轻松上手!
要使用 Python 发送邮件,主要依赖两个标准库:
email:用于构建符合 RFC 标准的邮件内容(包括纯文本、HTML、附件等)。smtplib:用于连接 SMTP 服务器并发送邮件。这两个库都是 Python 自带的,无需额外安装。
我们先从最基础的纯文本邮件开始。以下是一个完整的示例:
import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# 邮件内容msg = MIMEText('这是一封由Python自动发送的测试邮件!', 'plain', 'utf-8')msg['From'] = Header('发件人 <sender@example.com>', 'utf-8')msg['To'] = Header('收件人 <receiver@example.com>', 'utf-8')msg['Subject'] = Header('Python邮件测试', 'utf-8')# SMTP服务器配置(以QQ邮箱为例)smtp_server = 'smtp.qq.com'smtp_port = 587username = 'your_email@qq.com'password = 'your_authorization_code' # 注意:不是邮箱密码,是授权码!# 发送邮件try: server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # 启用安全传输 server.login(username, password) server.sendmail(username, ['receiver@example.com'], msg.as_string()) server.quit() print("邮件发送成功!")except Exception as e: print(f"邮件发送失败: {e}")
⚠️ 重要提示:大多数邮箱服务商(如 QQ、163、Gmail)出于安全考虑,不允许直接使用登录密码发送邮件,而是需要开启“SMTP服务”并使用授权码作为密码。请登录你的邮箱设置中获取。
如果你想发送更美观的邮件(比如带颜色、链接、图片),可以使用 HTML 格式:
html_content = """<html> <body> <h2 style='color: blue;'>欢迎使用Python邮件自动化!</h2> <p>这是由 <strong>Python email库</strong> 发送的HTML邮件。</p> <a href='https://www.python.org'>点击访问Python官网</a> </body></html>"""msg = MIMEText(html_content, 'html', 'utf-8')# 其余代码与纯文本邮件相同... 要发送带附件的邮件,需要用到 MIMEMultipart:
from email.mime.multipart import MIMEMultipartfrom email.mime.base import MIMEBasefrom email import encoders# 创建多部分邮件msg = MIMEMultipart()msg['From'] = Header('发件人 <sender@example.com>', 'utf-8')msg['To'] = Header('收件人 <receiver@example.com>', 'utf-8')msg['Subject'] = Header('带附件的邮件', 'utf-8')# 添加正文msg.attach(MIMEText('请查收附件。', 'plain', 'utf-8'))# 添加附件with open('report.pdf', 'rb') as f: part = MIMEBase('application', 'octet-stream') part.set_payload(f.read()) encoders.encode_base64(part) part.add_header( 'Content-Disposition', f'attachment; filename=report.pdf' ) msg.attach(part)# 使用smtplib发送(同前)
通过本文,你已经掌握了使用 Python email库 发送纯文本、HTML 邮件以及添加附件的基本方法。无论是用于 邮件自动化、系统监控还是业务通知,这套方案都非常实用。记住,关键在于正确配置 SMTP 服务器和使用授权码。
现在,你可以尝试修改上面的代码,给自己发送一封测试邮件!如果你正在学习 Python SMTP 相关技术,不妨将这段代码封装成一个函数,方便日后复用。
希望这篇 发送邮件教程 对你有所帮助!如有疑问,欢迎在评论区留言交流。
本文由主机测评网于2025-12-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251211964.html