python自动发送邮件实现

article/2025/10/5 0:49:33

目录

    • 1 前言
    • 2 准备工作
      • 2.1 电子邮件的基础知识。
      • 2.2 python邮件库
      • 2.3 邮箱设置
    • 3 python实现邮件自动发送
      • 3.1 SMTP()和send()方法介绍
      • 3.2 python实现实例
    • 参考信息

1 前言

python功能强大,可以实现我们日常办公的很多任务。诸如批量处理word,excel,pdf等等文件,今天先主要对如何用python来实现邮件的发送作一总结。

2 准备工作

2.1 电子邮件的基础知识。

电子邮件通俗讲就是将我们的实体信件网络化,借助互联网来发送和接收。
以QQ邮箱的发送邮件界面为例,其中包括收件人(抄送人、密送人)、主题、附件、正文、发件人等部分。

在这里插入图片描述

2.2 python邮件库

使用python来实现自动发送邮件的功能,本质上也是模拟我们实操的这一过程,只是用代码模拟了这一过程。python中内置了邮件处理的库——smtplib,不过推荐使用yagmail库,其底层仍然使用的smtplib,其提供的借口更适合日常的简单使用。

2.3 邮箱设置

想要利用python实现邮件自动发送,首先必须开通自己邮箱的SMTP服务。一般在设置中就可以找到,如下例所示。
在这里插入图片描述
开启SMTP服务后,就可以获取到当前账户的授权码(该授权码一定要记得复制、保存,这会在程序实现的过程中用到),如下图所示。
在这里插入图片描述

3 python实现邮件自动发送

实现邮件的自动发送主要用到yagmail模块中的SMTP()方法和send()方法。实现邮件的发送过程可以概括为三步:

  1. 调用SMTP()方法,创建SMTP实例;
  2. 调用send()方法,执行发送邮件操作;
  3. 断开连接。

3.1 SMTP()和send()方法介绍

SMTP()方法常用的参数如下

  • user=“发件人邮箱地址”
  • password=“授权码”
  • host=“SMTP服务器域名”

常见的电子邮件服务商的SMTP服务器域名

  • 163邮箱 :smtp.163.com
  • 126邮箱 :smtp.126.com
  • qq邮箱 :smtp.qq.com
  • Gmail邮箱 :smtp.gmail.com
  • Outlook邮箱;smtp.office365.com

send()方法常用的参数如下

  • to=收件人邮箱地址,
  • subject=邮件主题,
  • contents=正文,
  • attachments=附件存储路径,
  • cc=抄送人邮箱地址,
  • bcc=秘密抄送人邮箱地址,

当收件人有多个时,使用列表存储即可;当正文有多段时,也用列表存储即可,其他诸如附件、抄送人等有多个时,同样用列表存储即可。

3.2 python实现实例

第一个实例,自己给自己邮箱发送一个‘hello’信息,测试一下。

import yagmailmail = yagmail.SMTP("14****03@qq.com","授权码","smtp.qq.com")
mail.send("14****03@qq.com","测试邮件",'hello')
mail.close()

邮箱显示结果如下:
在这里插入图片描述
第二个实例,测试给邮箱发送多段信息,包括图片,以及发送附件信息到邮箱。

import yagmailmail = yagmail.SMTP("14****03@qq.com","授权码","smtp.qq.com")
subject = '测试正文和附件结果'
contents = ['各位领导:','请查收如下开会通知信息。详情可参考图片。',yagmail.inline(r"C:\Users\mu\Pictures\Camera Roll\Sni22.jpg"),'<a href="www.baidu.com">具体查询网址']
attachments = r"C:\Users\mu\Pictures\Camera Roll\WIN_20221212_21_41_11_Pro.jpg"
mail.send( "14****03@qq.com",subject,contents,attachments)
mail.close()

收件邮箱显示结果如下:
在这里插入图片描述

参考信息

  • python发送邮件(单发/群发)——yagmail模块
  • 《快学Python:自动化办公轻松实战》 ,黄伟、朱鹏伟,电子工业出版社,9787121436345,2022

http://chatgpt.dhexx.cn/article/lc8lamLP.shtml

相关文章

Python自动化小技巧14——自动批量发送邮件(带各种附件)

案例背景 我的博客下面评论都是各种要数据的......一个一个发其实很浪费时间的&#xff0c;每次输入评论者的邮箱&#xff0c;然后打开数据所在的文件夹&#xff0c;上传&#xff0c;填写标题正文&#xff0c;发送....... 一模一样的流程&#xff0c;所以这种重复性的劳动肯定…

【Python 】20行代码,实现自动发送邮件

快下班了&#xff0c;今天给大家分享一下&#xff0c;平常我都是怎么发送电子邮件&#xff0c;这个方法能够帮助大家提高工作效率、&#xff0c;摆脱繁重的重复性工作。一般我都会借用Python来实现自动化邮件发送&#xff0c;相信你用过这个方法之后就会爱上它。&#xff08;资…

Python 自动发送邮件实战案例,人人都可以学会

自动发送邮件能应用于许多场景&#xff0c;比如我想要知道股票策略中的股票池是否有实时的更新&#xff0c;这时候如果再拉一遍数据&#xff0c;跑一遍脚本&#xff0c;实在是太浪费时间了。为什么不把这一套流程放到服务器上&#xff0c;然后到点自动运行并发送邮件呢&#xf…

干货 | 解放双手,用Python实现自动发送邮件

使用Python实现自动化邮件发送&#xff0c;可以让你摆脱繁琐的重复性业务&#xff0c;节省非常多的时间。 Python有两个内置库&#xff1a;smtplib和email&#xff0c;能够实现邮件功能&#xff0c;smtplib库负责发送邮件&#xff0c;email库负责构造邮件格式和内容。 邮件发…

小区物业管理系统设计与开发论文

目录 第1章 需求规格说明书... 1 1.1 目的... 1 1.2 系统概述... 1 1.3 系统总体功能描述... 1 1.4 运行环境... 2 1.5 系统角色分工... 2 1.5.1xxx模块功能描述.. 4 1.5.2 xxx模块功能描述.. 5 1.5.3 xxx模块功能描述... 5 1.5.4 xxx模块功能描述... 6 第2章 系统设计说明书..…

基于安卓 android studio的考试APP开发设计 前台和后台管理系统

一 项目概述 考试APP系统分为前台APP端和后台管理系统&#xff0c;前台APP可以注册&#xff0c;登录&#xff0c;试卷列表&#xff0c;开始测试&#xff0c;个人中心&#xff0c;试卷打分&#xff0c;试题解析&#xff0c;退出系统&#xff0c;后台管理系统 主要有 老师注册 登…

产品开发的组织架构和开发管理

摘要&#xff1a;产品开发的组织架构和产品开发过程管理是一个软件企业开发管理的两个侧面&#xff0c;开发组织架构指软件项目的立项和项目开发有效的人员调配和组织&#xff0c;开发过程管理指在项目确定后&#xff0c;软件开发过程的管理。本文根据作者在建立软件企业管理体…

图书馆管理系统的开发

课程设计的目的与要求 课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、…

微信小程序 一键授权 给第三方平台代开发管理(一,创建第三方平台)

不是重点&#xff0c;可以忽略&#xff1a; 本人 七月的胜利。代表七月份我出生啦&#xff0c;嘻嘻 博客就是平常记录一些常用到的开发常用到的技术&#xff0c;方法等&#xff0c;看见好东西了就自己整理一下防止以后自己遇到了再找不到。 如果有幸帮到你&#xff0c;欢迎点赞…

使用go语言开发运维管理平台

前言 经过对go语言的一段时间学习&#xff0c;打算实践一下&#xff0c;正好公司缺个运维平台&#xff0c;于是我就对Zeus二次开发&#xff0c;完成了一个初步的效果&#xff0c;在这里分享给大家&#xff0c;大家有什么建议可以提出来哈&#xff0c;一起进步 采用技术 前端&am…

微信小程序云开发实践--搭建一个管理小程序

概述 : 开发者可以使用云开发开发微信小程序、小游戏&#xff0c;无需搭建服务器&#xff0c;即可使用云端能力。 云开发为开发者提供完整的云端支持&#xff0c;弱化后端和运维概念&#xff0c;无需搭建服务器&#xff0c;使用平台提供的 API 进行核心业务开发&#xff0c;即…

基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;或者没有积分想获取项目&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 一、开发背景二、 需求分析三、开发环境四、运行效果五、开发流程工程目…

用Django半天时间开发一个员工管理系统实例教程分享

熟悉python的朋友都知道&#xff0c;django简直是web开发领域的一个大杀器。 请求、模板、ORM、admin 都自带&#xff0c;程序员可以很轻松的开发出一个网站或者管理系统。 今天小编给大家分享一个超简单的员工管理系统 源码地址&#xff1a; https://github.com/newpanjin…

微信小程序云开发-内容管理系统(CMS)小案例

一、前言 最近有朋友问到如何在CMS上实现审核小程序端提交的数据&#xff0c;例如发布的内容审核&#xff0c;订单审核等等。因而出一篇小案例。 二、原理说明 这个由腾讯开源的这个内容管理系统&#xff0c;实际上就是对于云开发数据库的可视化操作&#xff08;又或者说其实…

使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS

以前开发一款小程序或者应用啥的&#xff0c;首先就是申请域名租服务器&#xff0c;这是必不可少的步骤。 现在小程序云开发出来后&#xff0c;又再出现内容管理的这个功能&#xff0c;对于开发一款简单的小程序来说&#xff0c;真的是太简单的了。 现成的后台直接配置&#…

新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

小程序云开发的云调用能力&#xff0c;让用户可以免鉴权快速调用微信的开放能力&#xff0c;极大节约了开发成本。现在&#xff0c;大家期待已久的云开发 CMS 内容管理系统&#xff0c;终于上线啦&#xff01;顺便提示&#xff0c;接下来还可以二次开发哦&#xff01; 云开发 …

[敏捷开发]研发管理 开发过程管理

开发过程管理&#xff0c;主要面向开发人员的管理。其核心目的&#xff0c;是通过一个项目管理软件&#xff0c;来管理不同项目&#xff0c;然后通过项目的里的工作项&#xff0c;了解开发人员的工作量&#xff0c;效率&#xff0c;从而来管理开发人员&#xff0c;合理调配开发…

Arduino常用的附加开发版管理器网址

20211004更新 增加ESP32 常用的附加开发版管理器网址 ESP32 https://dl.espressif.com/dl/package_esp32_index.json 如果使用ESP32-SOLO要用这里的编译文件替换源文件 https://github.com/lbernstone/arduino-esp32-solo 替换位置 C:\Users\你的用户名\AppData\Local\Ar…

基于vue的后台管理系统开发

如果要快速开发一套基于vue的后台管理系统&#xff0c;你可以手动从0到1动手撸&#xff0c;也可以基于现有的vue的后台管理系统模版进行开发。 github上有几套关注度比较的vue后台管理系统模版[1]&#xff1a; vue-element-admin[2]vue-admin[3]vue-manage-system[4]iview-admi…