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 相关文章推荐
Flask框架的学习指南之用户登录管理
Nov 20 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
Python计时相关操作详解【time,datetime】
May 26 Python
python生成九宫格图片
Nov 19 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python随机函数库random的使用方法详解
Aug 21 Python
Python yield的用法实例分析
Mar 06 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Python二元算术运算常用方法解析
Sep 15 Python
pytorch查看网络参数显存占用量等操作
May 12 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
dedecms系统常用术语汇总
2007/04/03 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
python批量修改交换机密码的示例
2020/09/22 Python
Python下载的11种姿势(小结)
2020/11/18 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
HTML5进度条特效
2014/12/18 HTML / CSS
2015年毕业生自我鉴定模板
2014/09/19 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python