python smtp发送邮件

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
import smtplib
import time
import datetime
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import parseaddr, formataddr
from email.header import Header

# 第三方 SMTP 服务
mail_host="smtp.xxx.com"  #设置服务器,可以用自己公司的邮箱服务器。或者163等等
mail_user="whlong@xxx.com"    #用户名
mail_pass="whlpassword"   #口令 

sender = 'whlong@xxx.com'
receivers = 'whlong@jiayougo.com,3756xxxxx@qq.com'  # 收件地址,可设置为你的QQ邮箱或者其他邮箱
cc = 'whlong@jiayougo.com,1560xxxxx@qq.com'  # 抄送地址,可设置为你的QQ邮箱或者其他邮箱

#邮件正文里使用的格式化日期
c_time=datetime.datetime.now()
c_date=c_time+datetime.timedelta(days=-1)
b_date=c_time+datetime.timedelta(days=-7)

#邮件正文里使用的格式化日期
format_c_date=c_date.strftime('%Y%m%d')
format_b_date=b_date.strftime('%Y%m%d')

#创建一个带附件的实例
message = MIMEMultipart()
message['From'] = Header("wanghailong@jiayougo.com", 'utf-8')
message['To'] =  Header("我自己;我的qq邮箱", 'utf-8')
message['Cc'] =  Header("我自己;我的qq邮箱", 'utf-8')

subject = '慢日志统计'
message['Subject'] = Header(subject, 'utf-8')
 
#邮件正文内容
message.attach(MIMEText('附件为生产库的slowlog慢查询统计。请查看并按需改进。谢谢!统计间隔为%d-%d期间。\n(注:此邮件为脚本自动发送,有问题请及时联系!)\n\n选项说明:\n总查询次数 (queries total);\n去重后的sql数量 (unique);\n输出报表的内容排序(sorted by);\n最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数;\nCount:sql的执行次数及占总的slow log数量的百分比;\nTime:执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比;\n95%% of Time:去除最快和最慢的sql, 覆盖率占95%%的sql的执行时间;\nLock Time:等待锁的时间;\n95%% of Lock:95%%的慢sql等待锁时间;\nRows sent:结果行统计数量, 包括平均,最小, 最大数量;\nRows examined:扫描的行数量;\nDatabase:属于哪个数据库;\nUsers:哪个用户,IP,占到所有用户执行的sql百分比;\nQuery abstract:抽象后的sql语句;\nQuery sample:sql语句;\n'%(int(format_b_date),int(format_c_date)), 'plain', 'utf-8'))

path='/data/whlong/slowlog/log_result'
filelist=os.listdir(path)

for files in filelist:
    # 构造附件,传送当前目录下的所有文件
    att1 = MIMEText(open('/data/whlong/slowlog/log_result/'+files, 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字。这里使用文件的原名。
    att1["Content-Disposition"] = 'attachment; filename=%s'%(files)
    message.attach(att1)

try:
    smtpObj = smtplib.SMTP() 
    smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号
    smtpObj.login(mail_user,mail_pass) 
    smtpObj.sendmail(sender, receivers.split(',')+cc.split(','), message.as_string())
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error: 无法发送邮件"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值