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

python自动发送邮件实现

目录

    • 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://www.lryc.cn/news/2949.html

相关文章:

  • ccc-Classification-李宏毅(4)
  • Kubernetes + Docker 部署一个yolov5检测服务(基于FastDeploy)
  • 【C++/QT】QT5.6解析Excel教程(qtxlsx)
  • C++之智能指针
  • Redis实战-session共享之修改登录拦截器
  • 数据可视化,流程化处理pycharts-
  • 1626_MIT 6.828 lab1课程大纲学习过程整理
  • 12月无情被辞:想给还不会自动化测试的技术人提个醒
  • 开发必备技术--docker(使用篇)
  • 2023备战金三银四,Python自动化软件测试面试宝典合集(三)
  • TortoiseGit 使用教程
  • Linux项目自动化构建工具make/Makefile
  • M100嵌入式自动吞吐式读写器|电动读卡机如何通过C#程序读取社保卡号
  • STM32----搭建Arduino开发环境
  • 华为OD机试 - 事件推送(Python),真机试题
  • 论如何获取CSDN原力
  • 流程引擎之发展史及对比总结
  • 【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN-工具使用】
  • C++中的模板
  • Maven_第四章 使用Maven:IDEA环境
  • RocketMQ基础学习
  • I.MX6ULL内核开发4:设备号的组成与哈希表
  • 【博学谷学习记录】大数据课程-学习第六周总结
  • Cordova
  • 9.语义HTMLVScode扩展推荐
  • 一款非常不错的微信系统垃圾清理工具:微信清理大师,操作简单,清除较快。
  • PMP考前冲刺2.11 | 2023新征程,一举拿证
  • yalc(比 yarn/npm link 更加友好的前端依赖库 link 方案)
  • Github | 个人资料自述文件配置的不完全总结
  • 2022年12月电子学会Python等级考试试卷(二级)答案解析