首页 > 编程语言 >python自动发送邮件

python自动发送邮件

时间:2022-09-18 13:36:30浏览次数:122  
标签:python smtp 发送 邮箱 mail com 邮件

需要什么库?

PyEmail

这个库能够实现基于SMTP协议自动发送邮件的功能

参考:Python SMTP发送邮件 | 菜鸟教程 (runoob.com)

需要哪些准备?

一个开启SMTP服务的邮箱

这里以163网易邮箱为例:

首先,需要拥有一个163网易邮箱(其它邮箱也可以)

然后,开启邮箱的smtp服务

开启后会获得一个授权码,这个码很重要,一定要保存好!!!

了解该邮箱smtp服务器的地址及其端口信息

例如,网易163邮箱相关信息为:

服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号
IMAP imap.163.com 993 143
SMTP smtp.163.com 465/994 25
POP3 pop.163.com 995 110

其它邮箱相关信息可自行百度

这里我们使用smtp协议,所以选用第二行数据

一个或多个接收邮件的邮箱

注意,自动发邮件是可以群发的,所以也可能是多个。

并且,该方式发送的邮件可能会被接收方归为垃圾邮件,这时需要将发邮件的邮箱设置为白名单

代码实现

import smtplib
from email.mime.text import MIMEText

# smtp的服务器地址
mail_host = 'smtp.163.com'

# 邮箱的用户名,例如:[email protected]的用户名就是xxx
mail_user = '***'

# 授权码或密码(网易邮箱是授权码,即开启smtp服务时的授权码。但有些邮箱是密码)
mail_pass = '***'

# 发送方邮箱
sender = '***@163.com'

# 接收方邮箱(一个列表,表示可以群发)
receivers = ['***@***.com']

# 设置邮箱内容(content即为正文),文本格式(plain),编码格式(utf-8)
message = MIMEText('content', 'plain', 'utf-8')

# 设置邮箱标题
message['Subject'] = 'title'

# 设置消息发送方
message['From'] = sender

# 设置消息接收方
# 这个只是消息信息,并不代表只给该接收方发送邮件
# 整个receivers列表的邮箱都能收到邮件
message['To'] = receivers[0]

# 初始化smtp对象
smtpObj = smtplib.SMTP()

# 与服务器构建连接(这个25即为端口号)
smtpObj.connect(mail_host, 25)

# 登录邮箱
smtpObj.login(mail_user, mail_pass)

#发送邮件
smtpObj.sendmail(
    sender, receivers, message.as_string())

# 退出
smtpObj.quit()

总结

技术改变生活。自动发送邮件听起来就很酷,而且实用性也非常强。我们可以配合python访问第三方接口的能力甚至配合前端传回来的数据,以该方式给指定人群相关信息提醒。

总之,学以致用应该是每个技术爱好者不断完善自身技术,提升自身能力的信条之一。

但愿我们最终都能成为自己想要成为的样子。

标签:python,smtp,发送,邮箱,mail,com,邮件
From: https://www.cnblogs.com/huang-guosheng/p/16704657.html

相关文章

  • 学习python-Day62
    今日学习内容具体项目:D:\pythonProject\django_day60登录界面搭建<divclass="container-fluid"><divclass="row"><divclass="col-md-6col-md-offse......
  • 经验分享:使用邮件触发流程,要避免“假死”这个坑!RPA学习天地
    在RPA场景中,有很多流程的自动化的触发是从读取邮件中相关内容进行触发。笔者所在的公司就有诸多类似的邮件触发场景!**注意:有的RPA流程设计需要通过发送固定邮件内容模板,......
  • Python函数-2
    一.导入$$f(x,y)=2x+3y$$上面括号里面的就是数学公式里的自变量,自变量就相当于函数里的参数。二.为什么要有参数如果一个大楼里有两种尺寸不一的窗户,显然在......
  • 修改-Python函数-2
    一.导入$$f(x,y)=2x+3y$$上面括号里面的就是数学公式里的自变量,自变量就相当于函数里的参数。二.为什么要有参数如果一个大楼里有两种尺寸不一的窗户,显然在......
  • 配置绿色免安装版的C/C++、java、python环境,重装系统可以继续使用
    windows系统用一段时间就会变得臃肿,我平均每年都会重装一下系统,因此需要配置免安装的环境,重装系统可以继续使用。 1、C/C++环境安装配置主流都是用minGwin的gcc/g++,最......
  • 【Python】初学者常犯错误
     CONTENT1语法类1.1忘记结束符号2变量类2.1全局变量忘记声明3习惯类 1语法类1.1忘记结束符号有些符号需要结束符号。比如:()、<>、''和""......
  • 用 Python 对计算机编程 Tictactoe
    用Python对计算机编程Tictactoe让我们通过一个有趣的游戏来学习python编程概念。Photoby马修戴维斯on不飞溅会发生什么?请阅读我之前关于Python中的Hang......
  • python常用魔术方法 (repr str call)
    repr和str的区别https://blog.csdn.net/LIFENG0402/article/details/121567390 classPeople:#类名Person后面加不加(Object)效果是一样的,都表示继承自Object类......
  • 如何在基础镜像中安装指定python版本
    背景由于规范要求要使用指定的镜像版本,但是由于该镜像中的python与我使用的版本有差异,怕引起一些不必要的兼容问题,所以我需要自己按基础镜像基础上安装对应版本的python。......
  • 安全巡检 python HTML报告
    1.报表模板[root@yinliao-yanshireport_jinja2]#catxunjian_table.html<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><titl......