当前位置: 首页 > news >正文

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参数,并确保网络环境允许访问对应端口。

http://www.jsqmd.com/news/294380/

相关文章:

  • 【课程设计/毕业设计】基于Springboot的在线游戏商城系统基于springboot的游戏售卖商城系统【附源码、数据库、万字文档】
  • Python如何识别周围WiFi:跨平台实现与进阶技巧
  • 一键生成100条小红书笔记!DeepSeek+火兔工具箱的组合太牛了!
  • 【毕业设计】基于springboot的助农扶贫系统(源码+文档+远程调试,全bao定制等)
  • 白盒测试 接口测试 自动化测试
  • 2026年上海企业管理咨询公司权威推荐:卓越绩效模式/ 绩效模式 /绩效分析模式/ 团队绩效模式/高绩效心理建设源头服务商精选
  • 雅思网上辅导终极榜单推荐|2026 雅思网上辅导实测 全国适配机构汇总
  • Router_T000_ConceptMECE
  • 离散化详解
  • 山东一卡通(礼遇卡)哪里回收方便,1分钟变现技巧
  • Java毕设选题推荐:基于springboot的游戏售卖商城系统基于SpringBoot+Vue的游戏装备交易商城系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 计算机Java毕设实战-基于springboot的游戏售卖商城系统游戏攻略资讯补丁售卖系统 游戏道具商城【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java计算机毕设之基于springboot+vue的游戏装备账号销售商城平台系统基于springboot的游戏售卖商城系统(完整前后端代码+说明文档+LW,调试定制等)
  • Java毕设项目:基于springboot的助农扶贫系统(源码+文档,讲解、调试运行,定制等)
  • 2026英语雅思口语培训辅导机构排行榜 家长择校实用指南:多维度评测帮孩子选对适配口语辅导机构
  • 2026英语雅思培训学校机构辅导机构推荐榜单 家长择校指南:多维度评测帮孩子选对适配机构
  • 全国支付宝立减金回收平台正规使用攻略
  • 2026英语雅思培训学校机构辅导机构排行榜+核心解析 家长择校实用指南 帮孩子精准匹配雅思备考全阶段适配方案
  • 01BFS
  • 2026英语雅思口语培训辅导机构排行榜+核心解析 家长择校实用指南 精准匹配孩子口语备考需求
  • 2026 雅思备考必看|网上辅导 TOP5 权威口碑排行榜测评 高效提分推荐
  • 2026英语雅思培训学校机构辅导机构排行榜+核心解析 家长择校完全指南 帮孩子精准匹配适配的雅思备考方案避误区
  • 现在的00后,真是卷死了呀,想离职了·····
  • 加载权重文件后发现准确率有问题
  • 2026英语雅思培训学校机构辅导机构排行榜 家长择校完全指南:多维度评测帮孩子选对适配辅导机构
  • 2026英语雅思学习辅导机构推荐榜单 家长择校完全指南:多维度评测解析帮孩子选对适配机构
  • 2026英语雅思学习辅导机构排行榜+核心解析 家长择校实用指南 帮孩子精准匹配雅思学习全阶段适配方案避误区
  • 并查集及其应用专题--全网最详细版
  • 聚焦5家瑞祥卡回收1分钟高效操作平台
  • 2025年目前靠谱的花灯企业推荐榜单,春节国潮花灯/十二生肖花灯/宫灯/互动花灯/营销花灯/古镇花灯,花灯实力厂家哪家好