Python网络编程:E-mail服务(九) 发送HTML格式邮件
来源:互联网 发布:马哥linux培训视频 编辑:程序博客网 时间:2024/06/05 11:00
简介
有时,我们使用的系统会发送系统运行情况的email报告。email的内容可能是格式化的纯文本数据,但是邮件客户端接收到后,可能因为非等宽字体显示的原因,导致客户端显示的样式非常不便于阅读。本文介绍如何编写和发送HTML形式的邮件,来解决这个问题。
E-mail渲染器机制
Email支持纯文本和HTML两种格式。一个纯文本的email渲染器通常以等宽字体对邮件内容进行渲染,但这点并不能得到保证。最重要的是,你对纯文本的邮件内容如何显示无能为力。在很多时候,自动发送的邮件里含有格式化的纯文本监控、异常等信息,在邮件客户端接收后,由于以非等宽字体格式显示,导致原格式化的信息无法正常显示。这时,HTML格式邮件能够帮助我们解决这类问题。
如果你的邮件客户端能够支持HTML格式的文本,这个问题就很容易解决。我们可以把需要格式化的内容通过font标签:<font face="Courier New, Courier, monospace"></font>将相关内容包含在这个标签中,这样客户端就可以使用等宽字体来对内容进行显示。
在Python代码中,你可以简单的进行如下的处理:
text = '<font face="Courier New, Courier, monospace">' + text + '</font>'
HTML邮件实例
下面是一个实际的例子,这里我们使用了HTML的<pre></pre>标签;pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。
'''Created on Apr 19, 2015@author: jliu'''from email.mime.text import MIMETextfrom email.utils import formatdate, make_msgidfrom smtplib import SMTP, SMTP_SSL# from email import messageif __name__ == '__main__': message = 'Hi, <br/>' \ ' This email is auto-generated by the monitor tool. <br/>'\ ' Thanks <br/>' \ 'Bob Liu<br/>' html_start = '<font face="Courier New, Courier, monospace"><pre>' html_end = '</pre></font>' msg = MIMEText(html_start + message + html_end, _subtype='html', _charset='utf-8') msg['To'] = 'jinguang.liu@qq.com' msg['From'] = 'infinera@163.com' msg['Subject'] = 'monitor report' msg['Date'] = formatdate(localtime=1) msg['Message-ID'] = make_msgid() smtp_server = 'smtp.163.com' smtp = SMTP(smtp_server) smtp.set_debuglevel(1) smtp.login('infinera', 'xxxxxxxx') smtp.sendmail(msg['From'], msg['To'], msg.as_string()) smtp.quit()
0 0
- Python网络编程:E-mail服务(九) 发送HTML格式邮件
- Python网络编程:E-mail服务(四) 编写传统邮件
- Python网络编程:E-mail服务(二)传统E-mail格式
- Python网络编程:E-mail服务(一)原理篇
- Python网络编程:E-mail服务(三)MIME解析
- python HTML格式发送邮件
- PHP PEAR MAIL发送TEXT/HTML格式邮件
- 用Java Mail发送带有图片附件的html格式邮件
- 使用linux的mail命令发送html格式的邮件
- 使用linux的mail命令发送html格式的邮件
- Python网络编程:E-mail服务(五)深入理解email模块的message和MIME类
- Python网络编程:E-mail服务(八) 实现抄送和密送功能
- python 利用smtp发送邮件,html格式
- 使用Python发送HTML格式的邮件
- Python学习 网络编程(四) E-Mail
- 应用层之E-mail服务及javaMail邮件发送的知识总结
- 用PHP MAIL()函数发送HTML邮件
- PHP mail函数发送HTML邮件
- 小知识Q & A
- 在两个已经排好序的数组里找出第K小的数
- All You Need To Know About Shop Shelving_54661.
- linux可执行文件创建过程 浅析
- HAproxy 代理技术原理探究
- Python网络编程:E-mail服务(九) 发送HTML格式邮件
- Eclipse中启动Tomcat出现Timeout的问题
- 【C语言】冒泡排序,选择排序。
- ckeditor和ckfinder集成详细配置及其优化
- 在Windows下安装MySQLdb模块
- 你所不知道的html5与html中的那些事(四)——文本标签
- C++在循环内和循环外定义变量的差异(如何写出高效的for循环)
- TCP的ACK确认系列 — 发送状态转换机
- Number of 1 Bits