news 2026/7/11 23:14:03

python如何发送邮件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python如何发送邮件

以下是一个使用Python发送邮件的示例代码,包含基础配置和附件功能:

importsmtplibfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextfromemail.mime.baseimportMIMEBasefromemailimportencodersimportosdefsend_email(sender,receiver,subject,body,files=None,smtp_server='smtp.gmail.com',port=587,password=None):""" 发送带附件的邮件 参数: sender: 发件人邮箱 receiver: 收件人邮箱(多个用列表) subject: 邮件主题 body: 邮件正文 files: 附件路径列表 smtp_server: SMTP服务器 port: 端口 password: 发件人邮箱密码/授权码 """try:# 创建MIME对象msg=MIMEMultipart()msg['From']=sender msg['To']=', '.join(receiver)ifisinstance(receiver,list)elsereceiver msg['Subject']=subject# 添加正文msg.attach(MIMEText(body,'plain'))# 添加附件iffiles:forfile_pathinfiles:withopen(file_path,'rb')asf:part=MIMEBase('application','octet-stream')part.set_payload(f.read())encoders.encode_base64(part)part.add_header('Content-Disposition',f'attachment; filename="{os.path.basename(file_path)}"')msg.attach(part)# 连接SMTP服务器withsmtplib.SMTP(smtp_server,port)asserver:server.starttls()# 启用TLS加密server.login(sender,password)server.sendmail(sender,receiver,msg.as_string())print("邮件发送成功")exceptExceptionase:print(f"邮件发送失败:{e}")# 使用示例if__name__=="__main__":# 配置信息 - 需要替换为实际值config={'sender':'your_email@gmail.com','password':'your_app_password',# Gmail需使用应用专用密码'receiver':'recipient@example.com','subject':'Python邮件测试','body':'这是一封通过Python脚本发送的测试邮件','files':['report.pdf','data.xlsx']# 可选附件}send_email(sender=config['sender'],receiver=config['receiver'],subject=config['subject'],body=config['body'],files=config['files'],password=config['password'])

使用说明:

  1. SMTP服务配置

    • Gmail用户:
      • 启用两步验证后创建应用专用密码
      • 开启允许不够安全的应用(或使用OAuth2)
    • 企业邮箱:联系管理员获取SMTP服务器地址和端口
  2. 参数说明

    • 多个收件人用列表:['a@example.com', 'b@example.com']
    • 附件支持常见格式(PDF/DOC/XLSX等)
  3. 安全提示

    • 不要将密码硬编码在脚本中
    • 建议使用环境变量存储敏感信息
    • 测试时使用临时邮箱服务(如Mailtrap)

常见问题处理:

# 如遇SSL错误,可尝试修改连接方式:withsmtplib.SMTP_SSL(smtp_server,465)asserver:# 使用SSL端口server.login(sender,password)...

扩展功能:

  • 添加HTML格式正文:替换MIMEText(body, 'plain')MIMEText(body, 'html')
  • 添加图片嵌入:使用MIMEImage并设置Content-ID

请根据您的实际邮箱服务商配置SMTP参数,并确保网络环境允许访问对应端口。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 7:18:44

Java计算机毕设之基于springboot+vue的游戏装备账号销售商城平台系统基于springboot的游戏售卖商城系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/29 0:01:44

基于的校园二手商品交易系统设计与实现(编号:4259233)vue3

目录摘要内容核心功能技术亮点创新点项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作摘要内容 该系统基于Vue3框架设计并实现了一个校园二手商品交易平台,旨在为学生提供便捷的二手物品交易服务…

作者头像 李华
网站建设 2026/7/2 4:32:47

Python教程

查看Python版本我们可以在命令窗口(Windows 使用 winR 调出 cmd 运行框)使用以下命令查看我们使用的 Python版本:python -V 或 python --version以下命令执行结果如下:你也可以进入Python的交互式编程模式,查看版本:第一个Python程序对于大多…

作者头像 李华