Python_sendEmail

使用Python内置的smtplib包和email包来实现邮件的构造和发送。

发送纯文本时:

1.需要导入Python3标准库中的smtplib包和email包来实现邮件的构造和发送。

import smtplib
​
# 发送字符串的邮件
​
from email.mime.text import MIMEText
​
# 处理多种形态的邮件主体需要 MIMEMultipart 类
​
from email.mime.multipart import MIMEMultipart
​
# 处理图片需要 MIMEImage 类
​
from email.mime.image import MIMEImage

2.配置邮件发送及接收人

fromaddr = '1oo88@sina.cn'  # 邮件发送方邮箱地址
password = '******'  # 密码(部分邮箱为授权码)
toaddrs = ['1oo88@sina.cn', '1951995428@qq.com']  # 邮件接受方邮箱地址,注意需要[]包裹,这意味着可以写多个邮件地址群发

3.内容

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#邮件内容设置
message = MIMEText('Python发邮件测试', 'plain', 'utf-8')
#邮件主题
message['Subject'] = '测试'​
#发送方信息​
message['From'] = fromaddr
#接受方信息​
message['To'] = toaddrs[0]

4.登录并发送

try:server = smtplib.SMTP('smtp.sina.cn')  # sina邮箱服务器地址,端口默认为25server.login(fromaddr, password)server.sendmail(fromaddr, toaddrs, message.as_string())print('success')server.quit()
​
except smtplib.SMTPException as e:print('error', e)  # 打印错误

发送带有附件时:

1.设置email信息

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#添加一个MIMEmultipart类,处理正文及附件
message = MIMEMultipart()
message['From'] = fromaddr
message['To'] = toaddrs[0]
message['Subject'] = 'title'

推荐使用html格式的正文内容,这样比较灵活,可以附加图片地址,调整格式等

with open('abc.html','r') as f:content = f.read()
#设置html格式参数
part1 = MIMEText(content,'html','utf-8')

添加txt文本格式内容

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#添加一个txt文本附件
with open('abc.txt','r')as h:content2 = h.read()
#设置txt参数
part2 = MIMEText(content2,'plain','utf-8')
#设置附件头,添加文件名
part2['Content-Disposition'] = 'attachment;filename="abc.txt"'

添加照片附件

#添加照片附件
with open('1.png','rb')as fp:picture = MIMEImage(fp.read())#与txt文件设置相似picture['Content-Type'] = 'application/octet-stream'picture['Content-Disposition'] = 'attachment;filename="1.png"'

2.将内容添加到邮件主体中

message.attach(part1)
message.attach(part2)
message.attach(picture)

3.登录并发送

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
try:smtpObj = smtplib.SMTP()smtpObj.connect('smtp.sina.cn',25)smtpObj.login(fromaddr,password)smtpObj.sendmail(fromaddr,toaddrs,message.as_string())print('success')smtpObj.quit()
except smtplib.SMTPException as e:print('error',e)

注意事项:

一些邮箱登录比如 QQ 邮箱需要 SSL 认证,所以 SMTP 已经不能满足要求,而需要SMTP_SSL,解决办法为:

#启动
smtpObj = smtplib.SMTP()
#连接到服务器
smtpObj.connect(mail_host,25)
#######替换为########
smtpObj = smtplib.SMTP_SSL(mail_host)

使用Python内置的smtplib包和email包来实现邮件的构造和发送相关推荐

  1. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  2. 用python内置函数算复杂度吗_Python减少代码量的两个内置函数

    Python减少代码量的两个内置函数 前言 Python中内置了几个非常好用的函数. 当你掌握了这几个函数的用法后,有些场景下,不用自己去实现多余的冗余代码编写,只需要调用这些函数,便能很简短的帮你实 ...

  3. Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3 >>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作 ...

  4. python内置哪些装饰器_Python内置的wraps装饰器有什么用

    Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的de ...

  5. Python内置四大数据结构之字典的介绍及实践案例

    Python字典的介绍及实践案例 一.字典(Dict)介绍 字典是Python内置的四大数据结构之一,是一种可变的容器模型,该容器中存放的对象是一系列以(key:value)构成的键值对.其中键值对的 ...

  6. python内置库有哪些_python 内置库

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! version: 0. 2.0, configurations: }, de ...

  7. python内置标准库不可以处理的文件是_精华 | 140种Python标准库、第三方库和外部工具都有了...

    原标题:精华 | 140种Python标准库.第三方库和外部工具都有了 作者 | 宋天龙 来源 | 大数据(ID:hzdashuju) [导读]Python数据工具箱涵盖从数据源到数据可视化的完整流程 ...

  8. python内置函数slice()

    python内置函数slice() 一.简介 slice() 函数实现切片对象,主要用在切片操作函数里的参数传递.可以用在任何可以被切片的地方 二.详解 返回一个切片对象,表示由 range(star ...

  9. 【Python知识点梳理】5.Python内置函数

    5.Python内置函数 文章目录 1.内置函数简介 2.数据运算 3.类型转换 4.序列操作 5.Set集合 7.其他内置函数 6.综合练习 总结 1.内置函数简介   任何一门编程语言的核心操作都 ...

最新文章

  1. centos6.5 设置tomcat8自启动
  2. thinkphp 二级域名绑定模块,导致设置的路由被多域名共用的问题解决方案
  3. 使用Lucene检索文档中的关键字
  4. 奇安信代码卫士帮助微软修复严重漏洞,获官方致谢和奖金
  5. 【leetcode刷题笔记】Roman to Integer
  6. PHPExcel存放多个sheet报错:Invalid character found in sheet title
  7. 翻译:Swift 5编写并发编程,并发解决方案和异步Operation
  8. 全球半导体产业60年兴衰启示录!
  9. 网络工程师职场进化手册
  10. 手把手教你如何用PhotoShop制作gif动画
  11. 21秋期末考试组织行为学10068k2
  12. 触发器详解——(三)T触发器
  13. 从零实现深度学习框架——前馈网络语言模型
  14. 【ArcGIS】Packaging succeeded,but publishing failed ERROR001487
  15. 锁定计算机后 360wifi,如何使360wifi关闭电脑后继续使?
  16. android 逆向so,逆向Android SO,以《遇见》App为例
  17. XLNet 详解(看不懂你来骂我)
  18. 李宏毅2022《机器学习/深度学习》——学习笔记(1)
  19. 高通开发系列 - 总目录
  20. day11 - 每日总结及作业

热门文章

  1. linux 安装mysql两种方式
  2. 《从零开始学Swift》学习笔记(Day 42)——构造函数调用规则
  3. 九度 1545:奇怪的连通图
  4. 设计模式原则篇:(1)单一职责原则--Single Responsibility Principle
  5. Linux系统下的DDOS***防范
  6. 在Linux上搭建 一个简单的vsftpd服务器
  7. 初级,用powerdesigner生成的sql创建access数据库
  8. 记事本 换行符_30年后终更新!新一代Win10记事本详细体验
  9. 【ABAP】采购申请自定义审批策略的实现
  10. 【整理】SD交货拣配(Picking)处理