python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】


Posted in Python onJuly 06, 2019

本文实例讲述了python 实现的发送邮件模板。分享给大家供大家参考,具体如下:

##发送普通txt文件(与发送html邮件不同的是邮件内容设置里的type设置为text,下面代码为发送普通邮件的另一种方法)
import smtplib
import string
from email.mime.text import MIMEText
from email.utils import formataddr
host = 'smtp.263.net'    ##定义smtp主机
SUBJECT = "test smtplib"  #定义邮件主题
TO = "xx@xx.com"   ##邮件接收人
FROM = "xxxx@xx.com"       ##邮件发送人
text = "content"              #邮件内容
###拼接邮件主体内容
BODY = "\r\n".join(("From %s:" % FROM,"To: %s" % TO,"Subject:%s" % SUBJECT,"",text)).encode("utf-8")
server = smtplib.SMTP()       #创建smtp对象
server.connect(host,"25")      ##通过connect方法连接smtp主机
server.starttls()        ##启动安全传输模式
server.login("xxx@huixxx.com",'GAxxx@xxx')    ##邮箱账号登录
server.sendmail(FROM,[TO],BODY)
server.quit()                    ##断开smtp连接

发送html邮件

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
HOST = 'smtp.263.net'    ##定义smtp主机
SUBJECT = "test smtplib"  #定义邮件主题
TO = "xxx@xxx.com"   ##邮件接收人(可以为一个列表)
FROM = "xxx@xxx.com"       ##邮件发送人
text = "content"              #邮件内容
def sendmail():
  msg = MIMEText(content,_subtype='html',_charset='utf-8')
##邮件内容,content邮件内容,plain为邮件类型,charset为字符集
  msg['From'] = FROM
  msg['To'] = TO





#如果此处为列表(';'.join(to_list))
  msg['Subject'] = SUBJECT
  server = smtplib.SMTP("smtp.263.net",25)
  server.login("aa@aa.com.cn","xxxxx")

#发送者的用户名和密码
  server.sendmail(FROM,TO,msg.as_string())
  server.quit()
sendmail()

发送带附件的邮件

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
#创建一个带附件的实例
msg = MIMEMultipart()
#构造附件1
file1 = MIMEText(open('d:\\123.rar', 'rb').read(), 'base64', 'utf-8')
file1["Content-Type"] = 'application/octet-stream'
file1["Content-Disposition"] = 'attachment; filename="123.doc"' #这里的filename可以任意写,写什么名字,邮件中显示什么名字
msg.attach(file1)
#加邮件头
msg['to'] = 'YYY@YYY.com'
msg['from'] = 'XXX@XXX.com'
msg['subject'] = 'hello world'#邮件主题
#发送邮件
server = smtplib.SMTP()
server.connect('smtp.XXX.com',"25")
server.login('XXX','XXXXX')


#XXX为用户名,XXXXX为密码
server.sendmail(msg['from'], msg['to'],msg.as_string())
server.quit()

发送带图片的邮件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
msg['From'] = "XXX@XXX.com"   #邮件发件人
msg['To'] = "YYY@YYY.com"     #邮件接收人
msg['Subject'] = "hello world"   ##邮件主题
def addimg(img_src,imgid):
  fp = open(img_src,'rb')
  msgImage = MIMEImage(fp.read())
  fp.close()
  msgImage.add_header('Conteng-ID',imgid)
  return msgImage






##返回msgImage对象
msg_text = MIMEText("""<table><tr><td><img src="cid:aa"></td></tr></table>""","html","utf-8")
#创建MIMEMultipart对象,采用related定义内嵌资源
msg = MIMEMultipart('related')
msg.attach(msg_text)
msg.attach(addimg("C:\aa.img",aa))


##这里的aa要与msg_text里的aa对应
#发送邮件
server = smtplib.SMTP()
server.connect('smtp.XXX.com',"25")
server.starttls()

##启动安全传输模式
server.login('XXX','XXXXX')


#XXX为用户名,XXXXX为密码
server.sendmail(msg['From'], msg['To'],msg.as_string())
#这里的前两个参数自定义
server.quit()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现挑选出来100以内的质数
Mar 24 Python
python中尾递归用法实例详解
Apr 28 Python
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
itchat接口使用示例
Oct 23 Python
python logging日志模块的详解
Oct 29 Python
Python中GIL的使用详解
Oct 03 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
Python必备技巧之字符数据操作详解
Mar 23 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 #Python
python实现爬取百度图片的方法示例
Jul 06 #Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 #Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 #Python
python使用 zip 同时迭代多个序列示例
Jul 06 #Python
Python搭建Spark分布式集群环境
Jul 05 #Python
详解python解压压缩包的五种方法
Jul 05 #Python
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
调整PHP的性能
2013/10/30 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
音乐播放用的的几个函数
2006/09/07 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
javascript json2 使用方法
2010/03/16 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
原生js实现分页效果
2020/09/23 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
医院后勤自我鉴定
2013/10/13 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
五年级语文教学反思
2014/01/30 职场文书
家长会主持词开场白
2015/05/29 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL