python smtp 通过MIMEText类 发送HTML格式的邮件

由于纯文本的邮件内容已经不能满足多样化的需求,主要介绍通过引入mail.mime的MIMEText 类来实现支持HTML格式的邮件,支持所有HTML格式的元素,包括表格,图片,动画,css样式,表单等。(参考刘老师文献)

案例中收集的是最简单的服务器硬件信息,通过smtp将信息发到收件人邮箱,大家可以根据自己的需求收集所需要的信息(比如CPU百分比,硬盘剩余百分比,内存使用百分比,并设定阈值,当硬盘剩余空间不足10%,发送邮件通知管理员及时处理)

#!/usr/bin/env python

#coding: utf-8

import smtplib

import os

import psutil

from email.mime.text import MIMEText    //导入MIMEText类

ip = os.popen("ifconfig |grep -v 127 |grep inet |awk ‘{print $2}‘|cut -d: -f2").read().strip()     //获取IP地址

hostname  = os.popen("hostname").read().strip()   //获取主机名

cpu = psutil.cpu_count()  //获取CPU线程

mem = os.popen("free -m |grep Mem |awk ‘{print $2}‘").read().strip()+"M"  //获取内存总量

disk = os.popen("fdisk -l |grep -E Disk |awk ‘{print $3}‘").read().strip()+"G" //获取硬盘总大小

HOST = "smtp.163.com"      //指定使用网易163邮箱

SUBJECT = u"服务器硬件信息"   //邮件标题

TO = "[email protected]"   //收件人

FROM = "[email protected]"    //发件人

msg = MIMEText("""

<table color="CCCC33" width="800" border="1" cellspacing="0" cellpadding="5" text-align="center">

<tr>

<td text-align="center">name</td>

<td text-align="center">network</td>

<td>CPU</td>

<td>Mem</td>

<td>Disk</td>

</tr>

<tr>

<td text-align="center">%s </td>

<td>%s </td>

<td>%s </td>

<td>%s </td>

<td>%s </td>

</tr>

</table>""" % (hostname,ip,cpu,mem,disk),"HTML","uft-8")

msg[‘Subject‘] = SUBJECT

msg[‘From‘] = FROM

msg[‘To‘] = TO

try:

server  = smtplib.SMTP()      //创建一个SMTP对象

server.connect(HOST,"25")      //通过connect方法链接到smtp主机

server.starttls()             //启动安全传输模式

server.login("[email protected]","passwordxx")  // 登录163邮箱 校验用户,密码

server.sendmail(FROM, [TO], msg.as_string())   //发送邮件

server.quit()

print "邮件发送成功 %s %s %s %s %s" % (hostname,ip,cpu,mem,disk)  /发送成功并打印

except Exception, e:

print "邮件发送失败:"+str(e)

运行结果:

大家可以收集自己需要的信息,通过判断服务器的状态信息,并发相关信息邮件。

时间: 2024-10-05 05:07:33

python smtp 通过MIMEText类 发送HTML格式的邮件的相关文章

如何使用python内置的request发送JSON格式的数据

使用步骤如下: 一.如果想发送json格式的数据,需要使用request模块中的Request类来创建对象,作为urlopen函数的参数 二.header中添加content-type为application/json 三.使用json中dumps方法将请求体内容解析为字符串类型 from urllib import request import json # 请求体数据 request_data ={ "account": "xxxxxx", "sign

在Linux命令行下发送html格式的邮件

在Linux利用formail+sendmail来发送带图片的邮件 formail接收html格式的文件作为邮件的内容,这样就可以解决发送带图片邮件的问题了,因为html中可以插入图片,只要给出的img src为可用的链接就行了. 命令格式如下cat mailfile.html | formail -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:lay

python发送html格式的邮件

python发邮件 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 import smtplib 4 from email.mime.text import MIMEText 5 import string 6 mailto_list=["[email protected]","XXX@163.com"] 7 print mailto_list 8 mail_host="smtp.exmail.qq.com&

发送html格式的邮件(shell+python)

一.基础环境 1.版本 cat /etc/debian_version  7.8 2.内核 uname -r 3.2.0-4-amd64 3.ip(eth0) 10.1.10.185 4.具体日志 cat 3.log aaa     10-29_10:30     29629395     test bbb     10-29_10:36     180035       test ccc     10-29_10:37     180035       test ddd     10-29_1

使用qq邮箱发送html格式的邮件

import smtplib   from email.mime.text import MIMEText   mailto_list=["[email protected]","[email protected]"]  mail_host="smtp.qq.com"  #设置服务器 mail_user="[email protected]"   #用户名 mail_pass="xxx"   #密码    

发送HTML格式的邮件

import smtplibfrom smtplib import SMTP_SSLfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header host_server = 'smtp.qq.com' #qq邮箱smtp服务器sender_qq = '[email protected]'  # sender_sina为发件人的邮箱p

python 2.7 利用smtplib发送、抄送邮件以及发送html表格

开发语言: python2.7 包:smtplib 导入包: import smtplib 定义一个函数: def send_mail(to_list, cc_list, html, sub):     me = mail_user     msg = MIMEText(html, _subtype='html', _charset='utf-8')  # 格式化邮件内容为html,编码为utf-8     msg['Subject'] = sub    # 邮件主题     msg['From

Python SMTP邮件模块

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 实例: 1.使用Python发送纯文本格式和html格式的邮件. 1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import smtplib 5 from email.mime.text import MIMEText 6 fr

Python SMTP发送邮件Ⅱ

使用Python发送HTML格式的邮件 Python发送HTML格式的邮件与https://www.xuanhe.net/weixiu/4271.html发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html.具体代码如下: 执行以上程序,如果你本机安装sendmail,就会输出: 查看我们的收件箱(一般在垃圾箱),就可以查看到邮件信息: Python 发送带附件的邮件 发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依