python收集数据发邮件_python查数据库发邮件

有时候需要将数据库中的统计信息统计好之后,直接每天定时发邮件。

可用python脚本写好逻辑后,使用crontab每天定时执行

# -*- coding: UTF-8 -*-

import MySQLdb

import smtplib

from email.MIMEMultipart import MIMEMultipart

from email.MIMEText import MIMEText

def queryDBdata():

#连数据库

conn = MySQLdb.connect(host='****', user='***', passwd='****', db='***', port=3307, charset='utf8')

querySQL="select sum(num),date from (SELECT count(e.order_num) num, date_format(r.order_date,'%Y-%m-%d') date from orders_extension e INNER JOIN commission_order r ON e.order_num=r.order_no where e.ex_cookie like '%bd%' and e.biz_type='COMMISSION' and date_format(r.order_date,'%Y-%m')=date_format(NOW(),'%Y-%m') group by date_format(r.order_date,'%Y-%m-%d') union ALL SELECT count(e.order_num) num, date_format(r.order_date,'%Y-%m-%d') date from orders_extension e INNER JOIN order_info r ON e.order_num=r.order_num where e.ex_cookie like '%bd%' and e.biz_type='PPB' and date_format(r.order_date,'%Y-%m')=date_format(NOW(),'%Y-%m') group by date_format(r.order_date,'%Y-%m-%d') ) a group by date"

cur = conn.cursor()

cur.execute("set names 'utf8'")

cur.execute(querySQL)

#获取数据

data="每天晚上九点自动发统计邮件\n\n"+"| 总订单数 | 日期 |"+"\n"

results = cur.fetchall()

for r in results:

data=data+"| "+str(r[0])+" "+"| "+str(r[1])+" |\n"

return data

def send_mail(content):

try:

mailToList=['yebing.li@163.com',"erte@163.com"]

sender='yebing.li@163.com'

mailto=",".join(mailToList)

msg = MIMEMultipart()

msg['Subject'] = "本月****来源的订单"

msg['to'] = mailto

msg['From'] = sender

body = MIMEText(content)

msg.attach(body)

smtp = smtplib.SMTP('mail.163.com')

smtp.sendmail(sender,mailToList,msg.as_string())

smtp.quit()

except smtplib.SMTPException, e:

print "error...%d: %s" % (e.args[0], e.args[1])

if __name__=="__main__":

content=queryDBdata()

send_mail(content)

其中crontab  -e 编辑表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值