如何使用Python实现电子邮件发送功能?
Python发送电子邮件实现指南
前置准备
- 首先登录你的邮箱后台设置页面开启SMTP服务,获取SMTP专属授权码(注意:SMTP登录验证使用授权码,而非邮箱原始登录密码)
- 确认所用邮箱的SMTP服务配置,常见邮箱参考参数:
- QQ邮箱:服务器地址
smtp.qq.com,SSL加密端口465 - 163邮箱:服务器地址
smtp.163.com,SSL加密端口465 - Gmail邮箱:服务器地址
smtp.gmail.com,SSL加密端口465
- QQ邮箱:服务器地址
实现步骤
1. 导入依赖模块
Python内置相关模块无需额外安装:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
2. 配置基础参数
替换为你自己的实际信息即可:
# 发件人配置 sender_addr = "你的发件邮箱地址" smtp_auth_code = "你申请的SMTP授权码" # 收件人配置,多个收件人用英文逗号分隔 receiver_addr = "收件人邮箱地址" # SMTP服务配置 smtp_host = "smtp.qq.com" smtp_port = 465
3. 构造邮件对象
# 初始化MIMEMultipart实例 msg = MIMEMultipart() # 配置邮件头部字段 msg["From"] = sender_addr msg["To"] = receiver_addr msg["Subject"] = "邮件自定义主题" # 添加正文内容,_subtype为plain代表纯文本,如需发送HTML内容改为html即可 mail_content = "这是邮件的正文内容" msg.attach(MIMEText(mail_content, "plain", "utf-8"))
4. 连接SMTP服务器发送邮件
try: # 建立SSL加密连接,保障信息安全 server = smtplib.SMTP_SSL(smtp_host, smtp_port) # 登录SMTP服务 server.login(sender_addr, smtp_auth_code) # 执行发送操作 server.sendmail(sender_addr, receiver_addr, msg.as_string()) print("邮件发送成功") except Exception as e: print(f"邮件发送失败,错误提示:{e}") finally: # 关闭SMTP连接 server.quit()
扩展说明
- 如需添加附件,额外构造MIMEBase对象,读取本地文件内容后添加到msg实例即可
- 多收件人场景下,
msg["To"]字段填写为a@xx.com,b@xx.com格式的字符串,同时sendmail方法的第二个参数传入收件人地址列表即可
内容的提问来源于stack exchange,提问作者SJXD
相关产品推荐
相关产品推荐

