Python基于smtplib模块发送邮件代码实例


Posted in Python onMay 29, 2020

smtplib模块负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

email模块下有mime包,mime英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

该mime包下常用的有三个模块:text,image,multpart。

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

#邮件服务器信息
smtp_server = "smtp.qq.com"
port = 465 # For starttls
sender_email = "12345689@qq.com"
password="" #get password from mailsetting

#发送邮件信息,可以发送给多个收件人
receivers=["12345689@163.com","12345689@qq.com"]
subject="This is import Python SMTP 邮件(文件传输) 多媒体测试"

# message = MIMEText(text, "plain", "utf-8") #文本邮件
message = MIMEMultipart()
message["Subject"] = Header(subject, "utf-8")
message["from"] = sender_email
message["to"] = ",".join(receivers)
# 邮件正文内容
text="""
Dear Sir:
how are you ? \n
for detail information pls refer to attach1。\n
The files you need are as followed.\n
If you have any concern pls let me known.\n
enjoy your weekend.\n
BEST REGARDS \n
"""
# message.attach(MIMEText('for detail information pls refer to attach1。\n The files you need are as followed. \n If you have any concern pls let me known. \n enjoy your weekend', 'plain', 'utf-8')
message.attach(MIMEText(text,'plain','utf-8'))

# 构造附件1
attach_file1='IMG1965.JPG'

attach1 = MIMEText(open(attach_file1, 'rb').read(), 'base64', 'utf-8')
attach1["Content-Type"] = 'application/octet-stream'
attach1["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file1)
message.attach(attach1)

# 构造附件2
attach_file2='YLJ.jpg'
attach2 = MIMEText(open(attach_file2, 'rb').read(), 'base64', 'utf-8')
attach2["Content-Type"] = 'application/octet-stream'
attach2["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file2)
message.attach(attach2)

# Try to log in to server and send email
# server = smtplib.SMTP_SSL(smtp_server,port)
server = smtplib.SMTP_SSL(smtp_server,port)

try:
  server.login(sender_email, password)
  server.sendmail(sender_email,receivers,message.as_string())
  print("邮件发送成功!!!")
  print("Mail with {0} & {1} has been send to {2} successfully.".format(attach_file1,attach_file2,receivers))
except Exception as e:
  # Print any error messages to stdout
  print("Error: 无法发送邮件")
  print(e)
finally:
  server.quit()

结果

邮件发送成功!!!

Mail with IMG1965.JPG & IMG1963.jpg has been send to ['12345689@163.com', '12345689@qq.com'] successfully.

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

Python 相关文章推荐
从零学Python之入门(四)运算
May 27 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
python实现图像识别功能
Jan 29 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
python os模块在系统管理中的应用
Jun 22 Python
Django通过json格式收集主机信息
May 29 #Python
Python小白不正确的使用类变量实例
May 29 #Python
python小白切忌乱用表达式
May 29 #Python
Python爬虫实现百度翻译功能过程详解
May 29 #Python
Django中的模型类设计及展示示例详解
May 29 #Python
如何理解Python中包的引入
May 29 #Python
浅谈django channels 路由误导
May 28 #Python
You might like
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
二级域名转向类
2006/11/09 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
Jquery attr("checked") 返回checked或undefined 获取选中失效
2013/10/10 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python类继承用法实例分析
2015/05/27 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python学习之os模块及用法
2020/06/03 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
外语专业毕业生自我评价分享
2013/10/05 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
小学教师办公室制度
2014/02/03 职场文书
校园绿化美化方案
2014/06/08 职场文书
公司活动总结怎么写
2014/06/25 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
未婚证明书模板
2014/10/08 职场文书
行政诉讼答辩状
2015/05/21 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis