python自动发送邮件不需要发件邮箱_python使用QQ邮箱实现自动发送邮件

最近用到Python自动发送邮件,主要就是三步,登录邮件、写邮件内容、发送,用到的库是 smtplib 和 email,直接使用pip安装即可

我使用的是QQ邮箱,首先需要设置QQ邮箱POP3/SMTP服务

记住这个授权码,这个授权码就是Python脚本中登录邮箱时的密码,而不是你平时登录邮箱时的那个密码

一.发送普通文本邮件#发送多种类型的邮件

from email.mime.multipart import MIMEMultipart

msg_from = '1508691067@qq.com' # 发送方邮箱

passwd = 'xxx'  #就是上面的授权码

to= ['1508691067@qq.com'] #接受方邮箱

#设置邮件内容

#MIMEMultipart类可以放任何内容

msg = MIMEMultipart()

conntent="这个是字符串"

#把内容加进去

msg.attach(MIMEText(conntent,'plain','utf-8'))

#设置邮件主题

msg['Subject']="这个是邮件主题"

#发送方信息

msg['From']=msg_from

#开始发送

#通过SSL方式发送,服务器地址和端口

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

# 登录邮箱

s.login(msg_from, passwd)

#开始发送

s.sendmail(msg_from,to,msg.as_string())

print("邮件发送成功")

二.发送携带附件的邮件import smtplib

from email.mime.text import MIMEText

#发送多种类型的邮件

from email.mime.multipart import MIMEMultipart

msg_from = '1508691067@qq.com' # 发送方邮箱

passwd = 'xxxxx'

to= ['1508691067@qq.com'] #接受方邮箱

#设置邮件内容

#MIMEMultipart类可以放任何内容

msg = MIMEMultipart()

conntent="这个是字符串"

#把内容加进去

msg.attach(MIMEText(conntent,'plain','utf-8'))

#添加附件

att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件

att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式

att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息

msg.attach(att1)  #加入到邮件中

#设置邮件主题

msg['Subject']="这个是邮件主题"

#发送方信息

msg['From']=msg_from

#开始发送

#通过SSL方式发送,服务器地址和端口

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

# 登录邮箱

s.login(msg_from, passwd)

#开始发送

s.sendmail(msg_from,to,msg.as_string())

print("邮件发送成功")

三.发送携带图片的附件

同理,可以使用上面的方法也可以发送图片附件import smtplib

from email.mime.text import MIMEText

#发送多种类型的邮件

from email.mime.multipart import MIMEMultipart

msg_from = '1508691067@qq.com' # 发送方邮箱

passwd = 'xxxxx'

to= ['1508691067@qq.com'] #接受方邮箱

#设置邮件内容

#MIMEMultipart类可以放任何内容

msg = MIMEMultipart()

conntent="这个是字符串"

#把内容加进去

msg.attach(MIMEText(conntent,'plain','utf-8'))

#添加附件

att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件

att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式

att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息

att2=MIMEText(open('1.jpg','rb').read(),'base64','utf-8')

att2['Content-Type']='application/octet-stream'  #设置类型是流媒体格式

att2['Content-Disposition']='attachment;filename=1.jpg' #设置描述信息

msg.attach(att1)  #加入到邮件中

msg.attach(att2)

#设置邮件主题

msg['Subject']="这个是邮件主题"

#发送方信息

msg['From']=msg_from

#开始发送

#通过SSL方式发送,服务器地址和端口

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

# 登录邮箱

s.login(msg_from, passwd)

#开始发送

s.sendmail(msg_from,to,msg.as_string())

print("邮件发送成功")

四.发送 html 格式的邮件import smtplib

from email.mime.text import MIMEText

#发送多种类型的邮件

from email.mime.multipart import MIMEMultipart

import datetime

msg_from = '1508691067@qq.com' # 发送方邮箱

passwd = 'xxxxxx'

to= ['1508691067@qq.com'] #接受方邮箱

#设置邮件内容

#MIMEMultipart类可以放任何内容

msg = MIMEMultipart()

# conntent="这个是字符串"

# #把内容加进去

# msg.attach(MIMEText(conntent,'plain','utf-8'))

#添加附件

att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件

att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式

att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息

att2=MIMEText(open('1.jpg','rb').read(),'base64','utf-8')

att2['Content-Type']='application/octet-stream'  #设置类型是流媒体格式

att2['Content-Disposition']='attachment;filename=1.jpg' #设置描述信息

msg.attach(att1)  #加入到邮件中

msg.attach(att2)

now_time = datetime.datetime.now()

year = now_time.year

month = now_time.month

day = now_time.day

mytime = str(year) + " 年 " + str(month) + " 月 " + str(day) + " 日 "

fayanren="爱因斯坦"

zhuchiren="牛顿"

#构造HTML

content = '''

这个是标题,xxxx通知

您好:

以下内容是本次会议的纪要,请查收!

发言人:{fayanren}

主持人:{zhuchiren}

{mytime}

'''.format(fayanren=fayanren, zhuchiren=zhuchiren, mytime=mytime)

msg.attach(MIMEText(content,'html','utf-8'))

#设置邮件主题

msg['Subject']="这个是邮件主题"

#发送方信息

msg['From']=msg_from

#开始发送

#通过SSL方式发送,服务器地址和端口

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

# 登录邮箱

s.login(msg_from, passwd)

#开始发送

s.sendmail(msg_from,to,msg.as_string())

print("邮件发送成功")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

标签:QQ,qq,python,发送,MIMEText,msg,邮箱,邮件

来源: https://blog.51cto.com/14825302/2544811

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监听手指是否离开屏幕android_Flutter事件监听

一. 事件监听 在大前端的开发中,必然存在各种各样和用户交互的情况:比如手指点击、手指滑动、双击、长按等等。所有内容首发于公众号:coderwhy在Flutter中,手势有两个不同的层次:第一层:原始指针事件&#…

matlab二维数组最小值出错,矩阵求最小值问题 问题是: 错误使用空矩形矩阵进行赋值...

我现在有一组数据 当然其实是有很多数据了 已经上万 只截取了其中一部分假设 【X Y W】32.8876000000000 26.6148000000000 1.0101000000000032.9319000000000 28.8627000000000 1.0099600000000032.9803000000000 31.30950000000…

android运行别人的项目_导入他人的Android工程

Android应用界面开发第一章学习第三部分####1.导入其它人创建的Android Studio项目(重点在第二部分)首先将下载的Project压缩包解压到自己的AS工程目录比如:工程目录然后打开AS软件,关闭其它工程(close project),然后准备导入刚才解压的文件夹…

@excel注解_Excel导入导出Java解决方案推荐

今天锋哥介绍一款Excel导入导出Java解决方案Easy-POI,以前我们用POI,麻烦点,Easy-POI是封装好的,用起来Easy点,封装过,性能好,所以大伙有空可以研究下;Easy-POIEasy-POI是一款Excel导…

wind 下装mysql,windows 下安装MySQL

下载压缩包首先到官网下载安装包,可联系提供配置环境变量找到系统属性(windows10在高级系统设置)在这里插入图片描述找到系统变量的 Path 点击编辑在这里插入图片描述点击新建,然后添加进去自己压缩包位置的bin目录在这里插入图片描述之后点击三个确当 (同时自动关闭…

javapanel根据内部组件_java gui中怎么用jpanel实现组件的绝对定位

展开全部相对定位是利用布局管理器GridBagLayout() 来实现的GridBagLayout 布局是根据GridBagConstraints() 来设定的GridBagConstraints主要有8个重要参数需要掌握非别62616964757a686964616fe58685e5aeb931333332613033是gridx,gridy —— 设置组件的位置,gridx…

打开word2007总是出现配置进度_实战经验:Word 2007每次打开都弹出正在配置

在一次清理注册表之后,发现每次打开Word 2007时,都会弹出”正在配置”的对话框。经过实验,发现可以使用如下的方法解决此问题:1) 打开cmd命令行2) 对于Word 2007,执行如下的指令:reg add HKCUSoftwareMicro…

Java 8中流Stream API详解

先给个示例,展示Java 8流API的优势 假设我们有以下任务: 给定一个字符串列表,我们需要执行以下操作: 筛选出所有以"A"开头的字符串。 将这些字符串转换为大写。 对这些字符串按照长度进行排序。 最后,将…

短信宝 php使用,[php] 使用 短信宝 发送短信(thinkphp)

/*** SmsBao实现类* category Think* package Think* subpackage Sms*/classSmsBao {private$account;//短信包账户private$password;//密码private$balance;//短信剩余条数constsendSmsUrl "http://api.smsbao.com/sms";constqueryBalanceUrl "http://api.smsb…

chrome github上不去 mac_码农大叔打赌,github上快速搜索优质开源项目,这些技能你不懂?...

GitHub的流行, GitHub在开源世界的受欢迎程度自不必多言。再加上今天,GitHub官方又搞了个大新闻:私有仓库也改为免费使用,这在原来可是需要真金白银的买的。可见微软收购后,依然没有改变 GitHub 的定位,甚至…

matlab保存数据到excel_Excel意外退出数据未保存?这个方法可以帮你找回所有数据...

老师们每天都需要完成大量的教学工作,且他们的每一个工作都是跟文字或数据打交道,Excel也逐渐成为了大家日常办公中的必备软件。在利用Excel办公时,通常是这么一个操作流程——新建、编辑、保存。编辑的时间可能是几分钟,也可能是…

c 调用matlab文件路径,C/C++下调用matlab函数操作说明

1.matlab的安装连接:http://pan.baidu.com/s/1qXuF7aO安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安装)2.matlab mex编译器配置安装完matlab之后,需要设定对应的c编译器才能编译.m文件生成可供c调用…

linux tomcat环境变量配置_Tomcat

Tomcat介绍1.Web服务器介绍Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术Web服务器通常产生一个html响应以便浏览器浏览2.常…

desktop docker 无法卸载_Docker容器无法停止或移除-权限被拒绝错误

问题 :无法停止泊坞窗容器,每当我尝试停止容器时,都会收到以下错误消息,ERROR: for yattyadocker_web_1 cannot stop container: 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: Cannot kill container 1f04…

oracle crs 命令,ORACLE RAC CRSCTL 命令使用 及 执行的用户

oracle rac crsctl命令使用查看crs资源状态[griddb1 ~]$ crs_stat -tName Type Target State Host------------------------------------------------------------ora.DATA.dg ora....up.type ONLINE ONLINE db1ora.FRA.dg ora....up.type ONLINE ONLINEdb1ora....ER.…

一直未运行_【直击一线】延一转三相分离器投运成功,盘活全区生产运行一盘棋...

喜 讯4月30日上午17点30点,新安边作业区延一接转注水站上新更换的三相分离器一次投运成功,这个好消息不胫而走传遍了全区收获获赞声一片,这也是对连日来奋战在施工作业现场的新安边人最大的褒奖。 延一接转注水站全貌延一接转注水站是新安边…

python字符串长度_在python中如何获取字符串的长度

python中如何获取字符串的长度?本篇文章就给大家介绍4种在python中计算并输出字符串长度的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 Python中的字符串是Unicode代码点的不可变序列。给定一个字符串&#xff0c…

python的py文件打包成exe_将python项目.py文件打包成.exe文件

安装pyinstaller包pip3 install pyinstaller如果不行pip3 install pyinstaller -i https://pypi.doubanio.com/simple准备一个你要打包的.py文件,cd到该文件路径下,打开cmd在命令行中输入:pyinstaller -F xxx.py或者pyinstaller.exe -F xxx.p…

python处理字典的方法_python字典的常用操作方法小结

Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。 字典由键和对应值成对组成。字典也被称作…

oracle rowed,oracle bitmap索引内部揭密,欢迎补充

位图(bitmap)索引是另外一种索引类型,它的组织形式与B树索引相同,也是一棵平衡树。与B树索引的区别在于叶子节点里存放索引条目的方式不同。从前面我们知道,B树索引的叶子节点里,对于表里的每个数据行,如果被索引列的值…