一 点睛

通过邮件传输简单的文本已经无法满足我们的需求,比如我们时常会定制业务质量报表,在邮件主体中会包含HTML、图像、声音以及附件格式等,MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)作为一种新的扩展邮件格式很好地补充了这一点,更多 MIME知识见http://zh.wikipedia.org/wiki/MIME。下面介绍几个Python中常用的MIME实现类。

二 MIME实现类

  • email.mime.multipart.MIMEMultipart([_subtype[,boundary[, _subparts[,_params]]]]):作用是生成包含多个部分的邮件体的MIME 对象,参数_subtype指定要添加到"Content-type:multipart/subtype"报头 的可选的三种子类型,分别为mixed、related、alternative,默认值为 mixed。定义mixed实现构建一个带附件的邮件体;定义related实现构建内嵌资源的邮件体;定义alternative则实现构建纯文本与超文本共存的邮件体。

  • email.mime.audio.MIMEAudio(_audiodata[,_subtype[, _encoder[,**_params]]]):创建包含音频数据的邮件体,_audiodata包含原始二进制音频数据的字节字符串。

  • email.mime.image.MIMEImage(_imagedata[,_subtype[, _encoder[,**_params]]]):创建包含图片数据的邮件体,_imagedata是包含原始图片数据的字节字符串。

  • email.mime.text.MIMEText(_text[,_subtype[,_charset]]):创建 包含文本数据的邮件体,_text是包含消息负载的字符串,_subtype指定文本类型,支持plain(默认值)或html类型的字符串。

三 smtplib及email的分工

我们可以将email.mime理解成smtplib模块邮件内容主体的扩展,从原先默认只支持纯文本格式扩展到HTML,同时支持附件、音频、图像等格式,smtplib只负责邮件的投递即可。

四 实现HTML格式的数据报表邮件

1 代码

# coding: utf-8
import smtplib
from email.mime.text import MIMETextHOST = "smtp.qq.com"
SUBJECT = u"官网流量数据报表"
TO = "798103175@qq.com"
FROM = "798103175@qq.com"msg = MIMEText("""<table width="800" border="0" cellspacing="0" cellpadding="4"><tr><td bgcolor="#CECFAD" height="20" style="font-size:14px">*官网数据  <a href="monitor.domain.com">更多>></a></td></tr><tr><td bgcolor="#EFEBDE" height="100" style="font-size:13px">1)日访问量:<font color=red>152433</font>  访问次数:23651 页面浏览量:45123 点击数:545122  数据流量:504Mb2)状态码信息&nbsp;&nbsp;500:105  404:3264  503:2143)访客浏览器信息&nbsp;&nbsp;IE:50%  firefox:10% chrome:30% other:10%4)页面信息&nbsp;&nbsp;/index.php 42153&nbsp;&nbsp;/view.php 21451&nbsp;&nbsp;/login.php 5112</td></tr></table>""", "html", "utf-8")
msg['Subject'] = SUBJECT
msg['From'] = FROM
msg['To'] = TO
try:server = smtplib.SMTP()server.connect(HOST, "25")server.starttls()server.login("798103175@qq.com", "QQ电子邮箱授权码")server.sendmail(FROM, TO, msg.as_string())server.quit()print "邮件发送成功!"
except Exception, e:print "失败:" + str(e)

2 运行结果

python之定制个性化的邮件格式方法相关推荐

  1. python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解

    本文实例讲述了Python实现发送与接收邮件的方法.分享给大家供大家参考,具体如下: 一.发送邮件 这里实现给网易邮箱发送邮件功能: import smtplib import tkinter cla ...

  2. python交互式命令_python实现定制交互式命令行的方法

    Python的交互式命令行可通过启动文件来配置. 当Python启动时,会查找环境变量PYTHONSTARTUP,并且执行该变量中所指定文件里的程序代码.该指定文件名称以及地址可以是随意的.按Tab键 ...

  3. 赶在元旦前夕!10分钟用Python批量定制化发送元旦祝福邮件!

    上一篇关于邮件的自动发送教程中,我们讲解了如何使用yagmail进行简单的邮件发送: 人人都能懂的 Python 自动发送邮件教程 现实生活中,如果只是发邮件给自己,像上一篇文章那样简陋的格式是可以接 ...

  4. 赶在元旦当天!10分钟用Python批量定制化发送元旦祝福邮件!

    AI派在读学生小姐姐Beyonce Java实战项目练习群 长按识别下方二维码,按需求添加 扫码添加Beyonce小姐姐 扫码关注 进Java学习大礼包 现实生活中,如果只是发邮件给自己,简陋的格式是 ...

  5. python自动接收邮件_Python自动发送和收取邮件的方法

    作为课代表,经常要做的两件事是:帮忙发作业和帮忙收作业,而且很多时候是通过邮件来完成的,如果手动一封一封的收取和发送就很浪费时间--人生苦短,我用Python. 直接上代码,不想了解细节原理直接拉到最 ...

  6. 元旦假期!10分钟用Python批量定制化发送元旦祝福邮件!

    现实生活中,若要针对每个人进行邮件的定制化,群发给公司客户.内部员工.亲戚朋友,则需更加高级的邮件发送方式. 我们可以通过HTML制作一封精美的元旦祝福邮件,但是邮件的内容--比如姓名.祝福语等应该怎 ...

  7. python英文词云代码_使用python实现个性化词云的方法

    先上图片 词云图 需要模板 pip install jieba pip install wordcloud 还需要安装另外两个东西这两个我也不太懂借鉴百度写上去的 pip install scipy ...

  8. python处理文本文件实现生成指定格式文件的方法

    python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...

  9. python qq群自动加入_Python实现向QQ群成员自动发邮件的方法

    本文实例讲述了Python实现向QQ群成员自动发邮件的方法.分享给大家供大家参考.具体实现方法如下: 原理: 我们需要先获取QQ群中的所有成员并保存到一个txt文本中去,然后再由python读取文件然 ...

最新文章

  1. 结构化方法与面向对象方法之比较
  2. JFrame 简单使用
  3. javascript网页精华代码集
  4. wegame一键蹲替换文件_iPhone 提示音一键替换,极简教程
  5. NLP工程师必学技能,自然语言处理进阶手册
  6. (一)梳理前端知识体系,搞定大厂必考面试题
  7. python的xpath用法_Python爬虫杂记 - Xpath高级用法
  8. 机器学习中用到的概率知识_山顶洞人学机器学习之——几种常见的概率分布
  9. 弹出模态窗口,关闭并刷新页面
  10. vue登录如何存储cookie_vue登录模块,登录状态应该存在哪里,怎么防止手动改cookie、localStorage?...
  11. 学术壁报模板_中华医学会核医学分会2020年学术年会征文通知
  12. Layui字体图标大全
  13. pd.to_datetime函数函数获取相应时间维度指标(isocalendar函数用法)
  14. CPU与RISC-V ISA架构
  15. 论语 尧曰篇(笔记)
  16. 消息称:华为将官宣为全国老款手机内存扩容
  17. recover database
  18. 如何启用/开启本机的IIS服务
  19. unity删除云端项目
  20. 关于单片机中的u8,u16等问题

热门文章

  1. MySQL中的limit分页优化
  2. mysql limit 分页 优化_MYSQL分页limit速度太慢优化方法
  3. PHP的反射类ReflectionClass、ReflectionMethod使用实例
  4. Git代码行数统计命令
  5. matlab标量数据,标量扩张 - MATLAB 系统中文帮助手册
  6. 如何使用ArcGIS进行坡度分析
  7. 微信显示时间php,类似于微信的聊天时间显示
  8. echarts-地图,定制地图,ARCGIS地图数据转JSON
  9. 关于程序中的路径问题
  10. posion定位属性