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 相关文章推荐
17个Python小技巧分享
Jan 23 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
python更改已存在excel文件的方法
May 03 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
如何通过python实现全排列
Feb 11 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
五种Python转义表示法
Nov 27 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
读jQuery之十 事件模块概述
2011/06/27 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
Node.js简单入门前传
2017/08/21 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python全局变量用法实例分析
2016/07/19 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
策划助理岗位职责
2013/11/18 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
家具促销活动方案
2014/02/16 职场文书
财务总监管理职责范文
2014/03/09 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
财务担保书范文
2014/04/02 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
服务员岗位职责
2015/02/03 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers
mysql 获取相邻数据项
2022/05/11 MySQL