news 2026/4/18 10:48:13

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/4/18 8:46:45

【课程设计/毕业设计】基于Springboot的在线游戏商城系统基于springboot的游戏售卖商城系统【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/4/15 14:52:56

计算机Java毕设实战-基于springboot的游戏售卖商城系统游戏攻略资讯补丁售卖系统 游戏道具商城【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/4/18 8:52:53

Java毕设项目推荐-基于springboot安全生产培训管理系统基于springboot的智慧生产安全系统【附源码+文档,调试定制服务】

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

作者头像 李华
网站建设 2026/4/18 8:38:00

基于的网上商城会员积分购物系统vue3

目录系统概述核心功能技术实现扩展性设计项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统概述 基于Vue3的网上商城会员积分购物系统是一个前端解决方案,通过Vue3的响应式特性和组合式API实…

作者头像 李华
网站建设 2026/4/18 7:13:25

《把脉行业与技术趋势》-85-知识和信息的透明,提升的整个系统的能力和性能;知识和信息的垄断,是通过牺牲系统的性能换取专权者的自保;互联网和AI打破了传统的专业保护的壁垒,实现了全人类知识的透明与平权

知识和信息的透明,提升的整个系统的能力和性能; 知识和信息的垄断,是通过牺牲系统的性能换取专权者的自保; 互联网和AI打破了传统的专业保护的壁垒,实现了全人类知识的透明与平权,这种跃迁不仅仅是AI技术…

作者头像 李华
网站建设 2026/4/17 21:13:27

基于Vue的“江城风光”旅游网站的设计与开发7363e(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表 系统功能 用户,景点分类,旅游景点,旅游线路,酒店信息,线路预订,酒店预订,门票预订,旅游新闻,服务指南,周边信息,特色美食 开题报告内容 基于Vue的“江城风光”旅游网站的设计与开发开题报告 一、选题背景与意义 (一)选题背景 随着…

作者头像 李华