一、需求

每日发送服务器利用率信息,通过邮件方式发到指定联系人

二、分享脚本内容如下
#!/usr/bin/env python
#-*-coding:utf-8-*-
import sys
from urllib import urlencode
from httplib2 import Http

reload(sys)
sys.setdefaultencoding("utf-8")

with open('test1.html','r') as f1:
    message = f1.read()

def send_mail(mail_to, subject, msg_txt):
    h = Http()
    data=dict(
        tos=mail_to,
        content=msg_txt,
        subject=subject,
        format="html"
    )
    headers = {'Content-type': 'application/x-www-form-urlencoded'}
    resp, content = h.request("http://proxy.xxxx.com:1925/api/mail", "POST", body=urlencode(data), headers=headers)
    print "Send mail: %s"  % content
    #print data
    return True
  
send_mail("lvbin01@zuoyebang.com", 'test subject', '%s' % message)
三、说明
reload(sys)
sys.setdefaultencoding("utf-8")

支持中文

with open('test1.html','r') as f1:
    message = f1.read()

这句是打和脚本通目录下的test1.html文件,赋值给message这个变量

def send_mail(mail_to, subject, msg_txt):

定义send_mail函数,该函数需要三个参数,包括mail_to:收件人, subject:主题, msg_txt:邮件内容

    h = Http()
    data=dict(
        tos=mail_to,
        content=msg_txt,
        subject=subject,
        format="html"
    )

定义一个Http方法赋值给h
定义data内容几个,包括tos:收件人、content:邮件内容、subject:主题,格式为:html

headers = {'Content-type': 'application/x-www-form-urlencoded'}

定义header内容

resp, content = h.request("http://proxy.xxxx.com:1925/api/mail", "POST", body=urlencode(data), headers=headers)
    print "Send mail: %s"  % content

请求邮件接口,一共四个参数,分别是接口地址、方法POST,内容是data定义的内容,请求头信息
打印content返回值内容,如有需要可以打印resp返回头信息

send_mail("lvbin01@zuoyebang.com", 'test subject', '%s' % message)

调用send_mail函数,传入三个参数:收件人、邮件主题、邮件内容

四、运行脚本
# python test_mail2.py   
content的内容是: {"status":0,"msg":"ok"}
resp的内容是: {'date': 'Mon, 18 Feb 2019 10:05:05 GMT', 'status': '200', 'content-length': '23', 'content-type': 'text/plain; charset=utf-8'}
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐