news 2026/6/15 17:14:19

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/6/15 15:52:51

CTF Writeup:Web题型之XSS漏洞挖掘与利用技巧

引言 一、XSS漏洞分类 存储型XSS:恶意脚本被存储到服务器数据库,每次访问页面都会执行,危害最大; 反射型XSS:恶意脚本通过URL参数注入,仅在当前请求中执行,需诱导用户点击; DOM型…

作者头像 李华
网站建设 2026/6/13 20:27:11

2026 网络安全 0 到 1!保姆级学习路线,零基础直接抄作业

网络安全从0到1,保姆级学习路线(2026) 一、前言:网络安全为什么值得学? 在数字化浪潮下,网络攻击事件频发(数据泄露、勒索病毒、APT 攻击等),企业对安全人才的需求缺口持…

作者头像 李华
网站建设 2026/6/15 12:38:08

基于python的家教预约服务平台vue3

目录 家教预约服务平台的技术架构核心功能模块技术实现要点扩展功能方向 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 家教预约服务平台的技术架构 该平台采用前后端分离架构,前端使用Vue3…

作者头像 李华
网站建设 2026/6/15 12:39:34

高校毕业生实习及就业去向信息管理系统(编号:3394424) --论文vue3

目录高校毕业生实习及就业去向信息管理系统(编号:3394424)的摘要内容通常包含研究背景、系统目标、技术选型及创新点。以下是根据Vue3框架开发的类似系统常见摘要要素的整理:研究背景系统目标技术选型创新点应用价值项目技术支持可…

作者头像 李华
网站建设 2026/6/15 12:39:40

《 一次让你学会并掌握指针》嵌入式-C语言高级-指针

好的,我们来一次把C语言指针彻底搞懂,尤其是从嵌入式开发最常用的角度去讲。 目标:看完这篇后,你能自信地说“我指针基本会了”,并且能看懂90%嵌入式C代码里的指针用法。 第一步:先把最本质的概念建立&am…

作者头像 李华