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 Socket网络编程
Jan 05 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
浅谈Django REST Framework限速
Dec 12 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
python多线程http压力测试脚本
Jun 25 Python
在python中画正态分布图像的实例
Jul 08 Python
python简单实现最大似然估计&amp;scipy库的使用详解
Apr 15 Python
Jupyter notebook如何修改平台字体
May 13 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
通过实例简单了解python yield使用方法
Aug 06 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
Python办公自动化之Excel(中)
May 24 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
Java设计中的Builder模式的介绍
2018/03/22 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
python 调试冷知识(小结)
2019/11/11 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
如何在django中实现分页功能
2020/04/22 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
幼儿园教研活动方案
2014/01/19 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
行政处罚告知书
2015/07/01 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript