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中的对象与类型
Dec 11 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
python实现读Excel写入.txt的方法
Apr 29 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
浅谈python标准库--functools.partial
Mar 13 Python
Django 多环境配置详解
May 14 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
Pycharm github配置实现过程图解
Oct 13 Python
Python实现京东抢秒杀功能
Jan 25 Python
python如何正确使用yield
May 21 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+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
php计算整个目录大小的方法
2015/06/01 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
js Function类型
2011/12/04 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
Python遍历目录中的所有文件的方法
2016/07/08 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Django和Flask框架优缺点对比
2019/10/24 Python
pandas中ix的使用详细讲解
2020/03/09 Python
运行Python编写的程序方法实例
2020/10/21 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
电话客服工作职责
2014/07/27 职场文书
网站出售协议书范文
2014/10/10 职场文书