哎呀,马上就要五一小长假了,想想都有点小激动,嘿嘿~约那个妹子出去嗨?
人事:五一,4号,5号在公司加班,全体加班。
我:我TM,WTF? 
怀着悲愤的心情,写下这个邮件发送,没事的时候给她发点垃圾邮件(想想又有点激动……),说干就干。

本节所讲内容:

1.  SMTP 介绍

2.  设置QQ环境

3.  了解MIMEText

4.  发送各种文档和图片,html样式

1.  SMTP 介绍

SMTP(Simple Mail Transfer Protocol):简单邮件传输协议。

SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。

我们要知道SMTP是发送邮件的协议,Python内置会对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplibemail两个模块,email负责构造邮件,smtplib负责发送邮件。

2.  QQ设置

在这里,我们公司主要用到的还是QQ(有点脱离了时代),所以我主要围绕着QQ进行操作,各位看官瞅瞅。

1.   打开QQ SMTP的步骤,首先点开自己的QQ邮箱,点击设置。

2.  再点击账户

3.  找到上面pop3/SMTP打开

4.  点击开启之后可能要验证一下手机或者密保,当然为了咱们能够使用这个功能小小的验证并不能算什么。

4.  验证后,会给你这个pop3授权码,很重要,记下来,以后我们发送邮件能不能成功都需要它。

user :代表的是开通SMTP服务的账号

pwd :代表是你开通之后的授权码(这个就是上面你开通后返回的授权码)

to :接件人

user = '123456789@qq.com'

pwd = 'adafdfasdfdfsadfas'

to = '1231232132@qq.com'

3.   python MIMEText操作

配置好了之后,就开始咱们今天的课程,首先,我们来构造一个最简单的纯文本邮件,来吧,come,baby~,第一个出场的是MIMEText这个构造基本的邮箱内容。

MIMEText这个是什么?

大白话:构造邮件的正文文本(邮件内容),杠杠滴~

如何构造,请看下方代码:

from email.mime.text import MIMETextmsg = MIMEText('hello, send by Python...', 'plain', 'utf-8')

然后,我的数学老师教给我,一个新的方法要想学好就要看底层

各位看官肯定注意到构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain',最终的MIME就是'text/plain',最后要用utf-8编码保证多语言兼容性。

1.    content: 邮件的内容 即为文本内容 定义为字符串即可

2.    plain: 邮件的文本格式普通文本默认设置为plain即可 发送html格式的文本设置为html即可

3.    utf-8: 邮件的编码格式 一般都设置为utf-8

import smtplib
from email.mime.text import MIMEText#输入相关的内容
from_addr = input("From:")
#输入刚刚的QQ开启pop3 的授权码
password = input('Password:')
#输入发送到的QQ邮箱
toaddr = input('To:')#发送内容
msg = MIMEText('hello,send by python')
#服务器
smtp_server = 'smtp.qq.com'
#创建一个SMTP实例对象,并25是默认邮件发送端口
server = smtplib.SMTP(smtp_server,25)
#登录SMTP服务器
server.login(from_addr,password)
#发送邮件 第一个参数是发送的地址,第二个是接收地址,第三个是msg然后利用as_string()把MIMEText变成一个str,当然[toaddr] 可以写成一个列表。发送给多个人
server.sendmail(from_addr,toaddr,msg.as_string())
#关闭服务
server.close()

    发送结果:                                 

4.  发送各种样式的邮件

上面对于我们来说就是毛毛雨,so,easy。但是我发现,没得主题,没得发件人,没得收件人,一个字:low~,对于我这样十全十美的男人来讲,不可饶恕,怎么办? 盘它~

我们通过发送HTML类型的数据,给上方的邮件进行简单的修饰~

from email.mime.text import MIMEText
from_addr = '123213213@qq.com'
password = 'afdafadfafdsf'
toaddr = '12312121312@qq.com'msg = MIMEText('<html><body><h1>你好</h1>' +'<p>send by <a href="http://www.python.org">Python</a>...</p>' +'</body></html>', 'html', 'utf-8')
#设置标题一些主题,邮件来自,和邮件发送
msg['Subject'] = '这是风一般的男人的邮件'
msg['From'] = from_addr
msg['To'] = toaddr
smtp_server = 'smtp.qq.com'import smtplib
#创建一个SMTP实例对象,并25是默认邮件发送端口
server = smtplib.SMTP(smtp_server,25)
#登录SMTP服务器
server.login(from_addr,password)
#发送邮件 第一个参数是发送的地址,第二个是接收地址,第三个是msg然后利用as_string()把MIMEText变成一个str,当然[toaddr] 可以写成一个列表。发送给多个人
server.sendmail(from_addr,toaddr,msg.as_string())
server.close()

发送普通文本是没有问题,我们要发送文档,图片呢?可不可以发个图片?发送个附件

import smtplib,time
from email.mime.multipart import  MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplicationuser = '1231@qq.com'
pwd = 'sfdafasdfasdfsdaf'
to = '12313213@qq.com'
#创建一个实例对象
msg = MIMEMultipart()
#设置标题一些主题,邮件来自,和邮件发送
msg['Subject'] = '这是风一般的男人的测试'
msg['From'] = user
msg['To'] = to
#给邮件加入内容
part = MIMEText('神一般的男人')
msg.attach(part)
#发送附件5.png图片
part = MIMEApplication(open('5.png','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="5.png")
msg.attach(part)try:#创建一个实例s = smtplib.SMTP('smtp.qq.com',timeout=30)#登录 并且user是用户名,pwd是授权码s.login(user,pwd)#发送邮件,第一个参数是谁发送的,第二个参数是发送给谁,后面的是将内容变成strings.sendmail(user,to,msg.as_string())except Exception as e:print(e)#沉睡多少时间
time.sleep(2)
#关闭连接
s.close()

运行结果如下:

发送带有图片文件的邮件

呦西,搜嘎,上面的流畅操作,真爽啊,下面我要在普通的正文文本内容出入图片下,比如我把我的照片发送下下

import smtplib
from email.mime.text import MIMEText
#输入相关的内容
from_addr = '3403073998@qq.com'
#smtp的授权码
password = 'camajkygjflmchbc'
#收件人
to_addr = '3440037784@qq.com'
#发送内容
msg = MIMEText('hello,send by python')
#服务器
smtp_server = 'smtp.qq.com'
#创建一个SMTP实例对象,并25是默认邮件发送端口
server = smtplib.SMTP(smtp_server,25)
#登录SMTP服务器
server.login(from_addr,password)
#发送邮件 第一个参数是发送的地址,第二个是接收地址,第三个是msg然后利用as_string()把MIMEText变成一个str,当然[toaddr] 可以写成一个列表。发送给多个人
server.sendmail(from_addr,to_addr,msg.as_string())
#关闭服务
server.close()

好了,流程差不多梳理到这里了,其实写好的有个脚本,发送邮件自动调用对方摄像头,并拍照返回的,已经打包成exe了,经过各方位的验证(公司的小姐姐都收到我的代码了),已经初步实现我的思路了,返回很多珍贵的资源,不过有个地方不完美,就是没有跳过免杀(气死人了)。

不多说了,我要开启 进程 + 协程 给我们老大和人事发“祝福”邮件了,同志们,祝愿我下周还在。

Python 邮件发送之嵌套图片发送附件相关推荐

  1. stmp批量发送email包括图片和附件

    应用场景: 女友工作因素,需要定期的与客户发送组织会议邀请,发送对象不同,内容基本相同,附件不同,每次发送时麻烦费事耽误时间,此工具的开发应用必然会深受女友的喜欢.大大减少其工作量. 设计: Exce ...

  2. Spring Boot整合websocket实现群聊,点对点聊天,图片发送,音频发送

    参考:基于https://blog.csdn.net/qq_38455201/article/details/80374712  基础上进行添加图片发送和音频发送功能 单点图片发送: 单点音频发送: ...

  3. Python邮件发送SMATP模块详细总结(含qq邮箱及163邮箱服务开启及授权码获取,多附件发送)

    Python实现电子邮件发送 在生活中或许我们多数都在用微信或者是QQ,但是工作中就会涉及邮件了,我也是最近在工作中用到了,所以找了些资料,有的较为完备有的就特别零散,所以自己也来整理分享一下.这里主 ...

  4. 基于python的图形化邮件发送程序(支持添加附件)

    2019独角兽企业重金招聘Python工程师标准>>> 开发环境:centos7 基于:python3.5 调用库:tkinter smtplib email linux中类outl ...

  5. python发邮件给女朋友代码_python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator' #coding=gb2312 from email.Header impor ...

  6. 使用Python实现微信发送文本消息、图片以及附件

    使用Python实现微信发送文本消息.图片以及附件 因为目前很多微信账号已经不支持网页版的操作了,因此无法使用之前的itchat这一类对微信进行操作. 为此,选择对微信PC端进行开发. 选择的方式比较 ...

  7. python邮件发送csv附件_Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法

    最近在SIOMP系统中添加一项功能时,即自动发送带附件邮件到指定邮箱时,发现在发送时报错:错误信息:STARTTLS extension not supported by server.很是奇怪,但发 ...

  8. python邮件发送哪个好_python发邮件(一)

    复习模块 如果我们要发送邮件,就需要用到smtplib模块的以下方法: 1.import smtplib       #引入smtplib模块 2.server = smtplib.SMTP()    ...

  9. python邮件发送和正则表达式(1)

    python邮件发送和正则表达式 一. 邮件发送 1. 开通邮箱SMTP服务,并获取 授权码 这个账户是你要使用此邮箱发送邮件的账户,密码不是平时登录邮箱的密码,而是开通 POP3/SMTP 功能后设 ...

最新文章

  1. Java IO 流 学习 总结
  2. LINQ系列:LINQ to SQL Select查询
  3. python学习HTML之CSS(2)
  4. HDU 1964 Pipes
  5. 与图论的邂逅05:最近公共祖先LCA
  6. python基本语法:列表(列表和元组的区别)
  7. ajax mvc3 razor 分页
  8. 减少工作时间更有利于百姓
  9. 麦子学院6.1 神经网络算法(Nerual Networks)(上) 学习笔记
  10. 机器学习笔记(十二):随机梯度下降
  11. 网络安全基础——批处理编写
  12. 中信行业分类判断标准
  13. 倪光南:网络不安全要挨打 不用县县都建数据中心
  14. Excel导入数据库(vue+py)py部分
  15. 在线自习室——新型的学习利器
  16. 我和王争学设计模式|代理模式
  17. FPGA ISE PROMs下载程序问题
  18. 探索者 STM32F407 与 HC05 蓝牙模块相连
  19. Qlik Sense 的一些问题【已解决】
  20. 从奶茶恋看刘强东马云气质之不同

热门文章

  1. 库拉托夫斯基的历史贡献
  2. MissionPlanner的固件下载模块
  3. VIA图像标注系统汉化版
  4. 通过事例重温一下常见的 JS 中 15 种数组操作(备忘清单)
  5. 给 1 万个粉丝的一封信
  6. 迅雷下载器无限制版_无敏感_无限速
  7. PHP 简单案例[3]
  8. [CCFwithAxin]201709-2公共钥匙盒
  9. TDengine 在 TCL 空调能源管理平台的实践
  10. Learning Pyramid-Context Encoder Network for High-Quality Image Inpainting论文理解