博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python发送邮件的实例代码(支持html、图片、附件)
阅读量:6708 次
发布时间:2019-06-25

本文共 6907 字,大约阅读时间需要 23 分钟。

hot3.png

#!/usr/bin/python# -*- coding: utf-8 -*-import emailimport mimetypesfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEText import MIMETextfrom email.MIMEImage import MIMEImageimport smtplibdef sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):        strFrom = fromAdd        strTo = ', '.join(toAdd)        server = authInfo.get('server')        user = authInfo.get('user')        passwd = authInfo.get('password')        if not (server and user and passwd) :                print 'incomplete login info, exit now'                return        # 设定root信息        msgRoot = MIMEMultipart('related')        msgRoot['Subject'] = subject        msgRoot['From'] = strFrom        msgRoot['To'] = strTo        msgRoot.preamble = 'This is a multi-part message in MIME format.'        # Encapsulate the plain and HTML versions of the message body in an        # 'alternative' part, so message agents can decide which they want to display.        msgAlternative = MIMEMultipart('alternative')        msgRoot.attach(msgAlternative)        #设定纯文本信息        msgText = MIMEText(plainText, 'plain', 'utf-8')        msgAlternative.attach(msgText)        #设定HTML信息        msgText = MIMEText(htmlText, 'html', 'utf-8')        msgAlternative.attach(msgText)       #设定内置图片信息        fp = open('test.jpg', 'rb')        msgImage = MIMEImage(fp.read())        fp.close()        msgImage.add_header('Content-ID', '
')        msgRoot.attach(msgImage)       #发送邮件        smtp = smtplib.SMTP()       #设定调试级别,依情况而定        smtp.set_debuglevel(1)        smtp.connect(server)        smtp.login(user, passwd)        smtp.sendmail(strFrom, strTo, msgRoot.as_string())        smtp.quit()        returnif __name__ == '__main__' :        authInfo = {}        authInfo['server'] = 'smtp.somehost.com'        authInfo['user'] = 'username'        authInfo['password'] = 'password'        fromAdd = 'username@somehost.com'        toAdd = ['someone@somehost.com', 'other@somehost.com']        subject = '邮件主题'        plainText = '这里是普通文本'        htmlText = '
HTML文本'        sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)文件形式的邮件#!/usr/bin/env python3   #coding: utf-8   import smtplib   from email.mime.text import MIMEText   from email.header import Header   sender = '***'   receiver = '***'   subject = 'python email test'   smtpserver = 'smtp.163.com'   username = '***'   password = '***'   msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8',单字节字符不需要   msg['Subject'] = Header(subject, 'utf-8')   smtp = smtplib.SMTP()   smtp.connect('smtp.163.com')   smtp.login(username, password)   smtp.sendmail(sender, receiver, msg.as_string())   smtp.quit()   HTML形式的邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.text import MIMETextsender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'msg = MIMEText('

你好

','html','utf-8')msg['Subject'] = subjectsmtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()带图片的HTML邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagesender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'msgRoot = MIMEMultipart('related')msgRoot['Subject'] = 'test message'msgText = MIMEText('
Some HTML text and an image.
good!','html','utf-8')msgRoot.attach(msgText)fp = open('h:\\python\\1.jpg', 'rb')msgImage = MIMEImage(fp.read())fp.close()msgImage.add_header('Content-ID', '
')msgRoot.attach(msgImage)smtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)smtp.sendmail(sender, receiver, msgRoot.as_string())smtp.quit()带附件的邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagesender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'msgRoot = MIMEMultipart('related')msgRoot['Subject'] = 'test message'#构造附件att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8')att["Content-Type"] = 'application/octet-stream'att["Content-Disposition"] = 'attachment; filename="1.jpg"'msgRoot.attach(att)smtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)smtp.sendmail(sender, receiver, msgRoot.as_string())smtp.quit()群邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.text import MIMETextsender = '***'receiver = ['***','****',……]subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'msg = MIMEText('你好','plain','utf-8')msg['Subject'] = subjectsmtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()各种元素都包含的邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagesender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'# Create message container - the correct MIME type is multipart/alternative.msg = MIMEMultipart('alternative')msg['Subject'] = "Link"# Create the body of the message (a plain-text and an HTML version).text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"html = """\       

Hi!

       How are you?
       Here is the link you wanted.   

  """# Record the MIME types of both parts - text/plain and text/html.part1 = MIMEText(text, 'plain')part2 = MIMEText(html, 'html')# Attach parts into message container.# According to RFC 2046, the last part of a multipart message, in this case# the HTML message, is best and preferred.msg.attach(part1)msg.attach(part2)#构造附件att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8')att["Content-Type"] = 'application/octet-stream'att["Content-Disposition"] = 'attachment; filename="1.jpg"'msg.attach(att)smtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.login(username, password)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()基于SSL的邮件#!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.text import MIMETextfrom email.header import Headersender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password = '***'msg = MIMEText('你好','plain','utf-8')#中文需参数‘utf-8',单字节字符不需要msg['Subject'] = Header(subject, 'utf-8')smtp = smtplib.SMTP()smtp.connect('smtp.163.com')smtp.ehlo()smtp.starttls()smtp.ehlo()smtp.set_debuglevel(1)smtp.login(username, password)smtp.sendmail(sender, receiver, msg.as_string())smtp.quit()

 

转载于:https://my.oschina.net/zhiyonghe/blog/1593662

你可能感兴趣的文章
gulp 常用插件汇总
查看>>
在linux下玩转usb摄像头
查看>>
RequiredFieldValidator----验证控件不起作用
查看>>
服务器端发送邮件签名采用Data URI scheme包含图片
查看>>
什么是DSCP,如何使用DSCP标记搭配ROS策略
查看>>
JPQL设置自增长、只读、文本类型等的注解
查看>>
【.net 深呼吸】自定义应用程序配置节
查看>>
【POI】对于POI无法处理超大xls等文件,官方解决方法【已解决】【多线程提升速率待定】...
查看>>
<html>
查看>>
SQL 查询逻辑处理顺序
查看>>
Android实训案例(七)——四大组件之中的一个Service初步了解,实现通话录音功能,抽调接口...
查看>>
Springmvc 中org.springframework.http.converter.json.MappingJackson2HttpMessageConverter依赖jackson包...
查看>>
[转载]从业务运维转到产品经理,我摸爬滚打的产品之路
查看>>
JDK工具jstatd用法详解(转)
查看>>
剑指offer47 不用加减乘除做加法
查看>>
为什么WEB-INF外的jsp无法根据cookie享受国际化
查看>>
Hbase 技术细节笔记(上)
查看>>
Java线程池详解
查看>>
深度学习入门篇--手把手教你用 TensorFlow 训练模型
查看>>
mybatis报错 Specified class is an interface
查看>>