python实现邮件自动发送--代码_贪婪的小白的博客-程序员信息网_python自动发送邮件代码

技术标签: python  

python实现邮件自动发送–代码

完整代码

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

#配置环境 连接服务器
server='smtp.qq.com' #smtp.qq.com smtp.126.com ......
smtp=smtplib.SMTP_SSL(server, 465)

#用户登录,此处授权瞎打的
smtp.login('[email protected]', 'gfhfgnbmnnhzdief')

#正文内容 即邮件显示内容
content="这是通过自动化脚本发送的邮件,带附件" #正文内容
msg=MIMEMultipart()
msg.attach(MIMEText(content,'plain','utf-8'))#(content,'plain'(格式 Html 等),'utf-8')
msg['From']='[email protected]'
msg['To']='[email protected]'
#msg['To']=','.join(receivers)#发送给多人时  ','.join(receivers)  receivers为收件人列表
msg['Subject']=Header('自动发送','utf-8')#主题

#附件内容
send_file=open(r'D:\desktop\1.jpg', 'rb').read()#附件读取
att=MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="1.jpg"'
msg.attach(att)#把附件添加到邮件中

#发送
sender='[email protected]'
receiver='[email protected]'#多个的话写为列表形式
#receivers=['[email protected]','[email protected]']
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

print('发送成功')

实现效果

在这里插入图片描述

具体实现讲解

1. 用到的库

import smtplib #连接服务器
from email.mime.text import MIMEText #发送附件
from email.header import Header #发送主题
from email.mime.multipart import MIMEMultipart#发送正文

2. 配置环境,连接服务器

#配置环境 连接服务器
server='smtp.qq.com' #服务器地址 smtp.qq.com smtp.126.com ......
smtp=smtplib.SMTP_SSL(server, 465) #对应端口号

#用户登录
smtp.login('[email protected]', 'onhhdodmnnhzdief')
#邮件名及第三方登录授权码
  • 上述代码以QQ邮箱为例,其余邮箱服务器地址和端口号可直接搜索’常用邮箱SMTP服务器地址大全’关键词即可查找
  • 下面以QQ邮箱为例,介绍如何获取邮箱的第三方登录授权码
    1). 登录邮箱,点击邮箱设置(设置)->账户
    在这里插入图片描述
    2). 下拉找到 POP3/SMTP服务 ,若未开启可点击开启依照简单步骤进行开启(注意保存授权码);若已开启但忘记授权码,可以点击关闭后再次进行开启,重新获得授权码
    在这里插入图片描述

3.填写收发邮箱及主题、正文内容



#正文内容
content="这是通过自动化脚本发送的邮件,带附件" 
msg=MIMEMultipart()
msg.attach(MIMEText(content,'plain','utf-8'))#(content,'plain'(格式 Html 等),'utf-8')
#邮件的标注内容
msg['From']='[email protected]'
msg['To']='[email protected]'
#msg['To']=','.join(receivers)#发送给多人时  ','.join(receivers)  receivers为收件人列表

#主题
msg['Subject']=Header('自动发送','utf-8')

对应邮件的内容如下
在这里插入图片描述
4.添加附件

#附件内容
send_file=open(r'D:\desktop\1.jpg', 'rb').read()#附件读取
att=MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="1.jpg"'
#注意filename="1.jpg"  需要扩展名与附件类型一致,否则文件无法显示
msg.attach(att)#把附件添加到邮件中

5. 发送邮件

#发送
#发件人邮箱
sender='[email protected]'
#收件人邮箱,多个的话写为列表形式
receiver='[email protected]'
#receivers=['[email protected]','[email protected]']
#组装邮件
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()
print('发送成功')
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45373427/article/details/106277284

智能推荐

SNAT和DNAT的区别_chunmiao3032的博客-程序员信息网_snat和dnat的区别

从定义来讲它们一个是源地址转换,一个是目标地址转换。都是地址转换的功能,将私有地址转换为公网地址。要区分这两个功能可以简单的由连接发起者是谁来区分:SNAT:内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。DNAT:当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接

蓝月传奇怎么显示无服务器,关于此次蓝月传奇突然关闭的说明!_许小晴的博客-程序员信息网

首先,感谢大家对蓝月传奇的支持!蓝月的突然关闭是有很深的原因,先说说去年12月份的事情,大家都知道12315吧?全国打假举报的,有人把蓝月给举报出去了!是谁肯定不知道,但一定是蓝月的竞争对手!别的我就不多说了,在2010年末发生这样的事情谁都不愿意。这个只是2010年12月底的事情,蓝月本人说了其实这个不算事,但这次突然关服,主要的还是国家剑网行动的打压。(很多人要问,什么是剑网行动?详见百度百科...

创建可引导的 macOS 安装 U 盘_ 吖 頭的博客-程序员信息网

1、准备和条件下载 macOS当前版本: macOS Big Sur 11.2.3 (20D91) 正式版Mac OS Big Sur 11.2.1支持以下型号iMac 2014+iMac Pro 2017+Mac Pro 2013+MacMini 2014+MacBook 2015+MacBook Air 2013+MacBook Pro 2013+要保证下载的安装包 Install macOS .app*(“安装 macOS [版本名称]”的 App)**在“应用程序”文件夹。在

src与href属性的区别_叶才鑫的博客-程序员信息网

src和href之间存在区别,能混淆使用。src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。

expo打包安卓 ios_挺不下的脚步的博客-程序员信息网

npm install -g exp运行exp build:android或exp build:ios

Tree_NC161_潇雨墨临的博客-程序员信息网

二叉树的中序遍历描述给定一个二叉树的根节点root,返回它的中序遍历。解题二叉树public class TreeNode{ int val; TreeNode left = null; TreeNode right = null; public TreeNode(int val){ this.val=val; }}Solution/** * 递归中序遍历,列表 */import java.util.ArrayList;imp

随便推点

AR-HUD相关技术介绍2021-03-23_淡定云天的博客-程序员信息网_arhud原理

随着智能驾驶技术的不断革新,越来越多的外部传感器的加入,AR-HUD的功能与效果会得到进一步的提升。 看过电影《极品飞车》、《钢铁侠》的朋友,在享受其紧张刺激的电影情节的过程中,想必对其中展示的HUD技术也会记忆犹新。什么是HUD  HUD,全称Head Up Display,又可称之为“抬头数字显示仪”。它的前身是战斗机上的光学瞄准器,最早出现在第一次世界大战期间。这种瞄准器利用光学反射原理,将瞄准光圈投射在飞行员前方的玻璃上面,使得飞行员在瞄准射击的同时,可以观察周围的环境变化。  

adb命令的一些补充_sas???的博客-程序员信息网

如上-e代表push到模拟器中,/mnt/sdcard/代表SD卡adb logcat wait-for-device等待设备一连接就开始抓LOG从电脑上远程控制手机打开设备上的monkey端口将PC的1080端口印射到手机上的1080端口上,这样所有通过电脑1080端口的信息都会发住手机远程连接电脑...

[存档]使用.Net开发web程序时现在比较流行的前台技术都有什么?_weixin_30736301的博客-程序员信息网

如题,我一直做winform项目,过些天有个web项目。我想知道前台设计现在流行什么呀,Silverlight、ExtJS还是JQuery等。另外开发web程序有没有什么流行的框架呀。像java的Spring、Structs和等。我对web项目实在是不熟,正在熬夜学习呢,大家还有其他的好提议也可以说说啊。谢谢。最佳答案--------------------------------...

2015年中国互联网大检阅_david_lv的博客-程序员信息网

此数据来自互联网周刊:2015中国互联网TOP 500排行榜我重新整理的目的是:按类别来归集,看看有哪些类别,哪些类别冷,哪些类别热,还有哪些类别在产业链上还有空缺环节。...

机器学习的分类与主要算法对比_yamaxifeng_132的博客-程序员信息网

重要引用:Andrew Ng Courera Machine Learning;从机器学习谈起;关于机器学习的讨论;机器学习常见算法分类汇总;LeNet Homepage;pluskid svm  首先让我们瞻仰一下当今机器学习领域的执牛耳者:  这幅图上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的...

java程序员的NodeJS初识篇_weixin_30602505的博客-程序员信息网

摘要作为一个一直用java来写后端的程序员用NodeJS来写后台,实在不是很爽。这里记下这两个月的NodeJS学习所遇之坑,与java转NodeJS的同仁共勉。学习时间不长,若有理解错误,望指正。一.JS基本exports,module.exportsexports 就是module.exports的引用在module 被计算之前,会将module....

推荐文章

热门文章

相关标签