发送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_10:37     580495       test
eee     10-29_10:37     580495       test
fff     10-29_10:46     180035       test
ggg     10-29_10:46     180035       test

5、mutt使用是发到163的 python的是在公司使用的

6、使用的python版本是2.7

二、具体代码
cat mailsend.sh 
#!/bin/bash
#--------------------------------------------------
#Author:jimmygong
#Email:[email protected]
#FileName:mailsend.sh
#Function: 
#Version:1.0 
#Created:2015-10-30
#--------------------------------------------------
sendip="10.1.10.185"
maillog="/root/3.log"
mailbox="[email protected]"
function handlemail ()
{
    sed -i -e ‘1i\title1\ttitle2\ttitle3\tdtitle4‘ $maillog
    sed -i -e ‘s/^/<tr><td>/‘ -e ‘s/\s\+/<\/td><td>/‘ -e ‘s/\s\+/<\/td><td>/‘ -e ‘s/\s\+/<\/td><td>/‘ -e ‘s/$/<\/td><\/tr>/‘ $maillog
    sed -i -e ‘1i\<table>‘ -e ‘$a\</table>‘ $maillog
    sed -i -e ‘1i\<style type="text\/css">table,td,th{border:1px solid black;}<\/style>‘ $maillog
    /usr/local/mutt/bin/mutt -s "aaa $sendip" -e ‘set content_type="text/html"‘ $mailbox < $maillog
    #python mailsend.py $maillog "aaa $sendip"
}
handlemail
exit 0

PS:
1、如果使用mutt的话 那么请先参考以下链接安装
http://7938217.blog.51cto.com/7928217/1641803
2、如果使用python的话 那么使用以下python代码
cat mailsend.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
#--------------------------------------------------
#Author:jimmygong
#Email:[email protected]
#FileName:mailsend.py
#Function: 
#Version:1.0 
#Created:2015-10-30
#--------------------------------------------------
import sys
import smtplib 
from email import encoders
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import COMMASPACE
from email.mime.multipart import MIMEMultipart
def send_mail(fro,to,subject,text,txttype=‘html‘,files=[]): 
    msg = MIMEMultipart() 
    msg[‘From‘] = fro 
    msg[‘Subject‘] = subject 
    msg[‘To‘] = COMMASPACE.join(to) 
    if txttype=="html":
            msg.attach(MIMEText(text,‘html‘)) 
    else:
            msg.attach(MIMEText(text)) 
    for file in files: 
        part = MIMEBase(‘application‘, ‘octet-stream‘)
        part.set_payload(open(file, ‘r‘).read()) 
        encoders.encode_base64(part) 
        part.add_header(‘Content-Disposition‘, ‘attachment; filename="%s"‘ % os.path.basename(file)) 
        msg.attach(part) 
    s = smtplib.SMTP()
    s.connect(‘mail.shidc.taomee.com‘)
    s.sendmail(fro,to,msg.as_string()) 
    s.quit()
if __name__==‘__main__‘:
        fro=‘[email protected]‘
        to=[‘[email protected]‘,]
        subject=sys.argv[2]
        with open(sys.argv[1],"r") as f:
            text=f.read()
        txttype=‘html‘
        files=[]
        send_mail(fro,to,subject,text,txttype,files)
3、一些说明        
sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始.        
        
三、效果

时间: 2024-10-13 09:38:14

发送html格式的邮件(shell+python)的相关文章

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

由于纯文本的邮件内容已经不能满足多样化的需求,主要介绍通过引入mail.mime的MIMEText 类来实现支持HTML格式的邮件,支持所有HTML格式的元素,包括表格,图片,动画,css样式,表单等.(参考刘老师文献) 案例中收集的是最简单的服务器硬件信息,通过smtp将信息发到收件人邮箱,大家可以根据自己的需求收集所需要的信息(比如CPU百分比,硬盘剩余百分比,内存使用百分比,并设定阈值,当硬盘剩余空间不足10%,发送邮件通知管理员及时处理) #!/usr/bin/env python #c

在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&

使用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

django-29.发送html格式邮件

上一篇已经通过send_mail()函数发送纯文本的邮件,发送成功了,如果我们想发送一个html格式的邮件,如何实现呢?发送html格式的邮件实际上还是调用send_mail()函数 ,只需多加一个html_message参数 html_message参数 从上一篇的send_mail()函数里面可以看出,里面有个参数html_message默认是为None,部分源码如下 mail = EmailMultiAlternatives(subject, message, from_email, re

pop3_用Java发送图文并茂的HTML邮件

package com.syj; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.Arrays; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activati

[Java] JavaMail 发送带图片的 html 格式的邮件

JavaMail 发送的邮件正文和附件是相互独立的,但是内置图片需要定位图片在正文中的位置,所以内置图片和邮件正文是互相依赖的. 发送带附件的邮件可参考JavaMail 发送 html 格式.带附件的邮件. 发送纯文本的邮件可参照 JavaMail 简单案例. 具体例子 EmailHelper, Email 的帮助类,向帮助类提供 SMTP 服务器域名.用户名.密码.发送人邮箱.收件人邮箱.邮件主题.html 格式的内容.图片的路径,便可发送一份内置图片的邮件.在创建 MimeMultipart

[Java] JavaMail 发送 html 格式、带附件的邮件

本案例演示发送 html 格式,可带附件的邮件发送.发送纯文本邮件的例子可参照上一篇博文JavaMail 简单案例. EmailHelper, Email 的帮助类,向帮助类提供 SMTP 服务器域名.用户名.密码.发送人邮箱.收件人邮箱.邮件主题.html 格式的内容(可选).附件(可选),便可发送一份邮件. SendEmailDemo, 演示发送邮件. import java.util.Properties; import javax.activation.DataHandler; impo