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和IPython中使用Docker
Apr 28 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
详解Django中间件执行顺序
Jul 16 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
Python中else的三种使用场景
Jun 16 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之Smarty入门
2007/01/04 PHP
深入PHP异步执行的详解
2013/06/03 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
Python XML RPC服务器端和客户端实例
2014/11/22 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
新学期校长寄语
2014/01/18 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
保护母亲河倡议书
2014/04/14 职场文书
服务理念口号
2014/06/11 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript