python自动发送邮件

本次文章主要是通过python监控ETL流程的运行情况;
ETL流程如成功,会将同步时间更新到数据库里去,失败的话时间不会更新,因此本次尝试中首先第一步是使用python连接oracle数据库,比较麻烦的是数据库是32位的,之前的python版本都是64位的,版本兼容的问题困扰了比较久,最后下载了32位的python,使用pycharm切换python环境;
本次尝试主要分三步:
1.使用python连接oracle数据库
2.使用smtplib发送邮件
3.用windows自带的任务计划程序设置定时任务

第一步代码:

db = cx_Oracle.connect('数据库名/密码@host:PORT/SERVICE_NAME')
cursor = db.cursor()
sql = '''
sql语句
'''
result = cursor.execute(sql)
all_date =  cursor.fetchall()
db.close()
all_date = pd.DataFrame(all_date)

第二步代码:


msg = MIMEText(' \n'.join(all_date[1]), 'plain', 'utf-8')
username = 'xxx@163.com'
password = 'xxx'
#smtp_server = 'smtp.163.com'
sender = 'xxx@163.com'
receiver = 'xxx@qq.com'
subject  = '同步流程出错'

msg['Subject'] = subject
msg['From'] = 'xxx@163.com'
msg['To'] = 'xxx@qq.com'
sever = smtplib.SMTP()
sever.connect('smtp.163.com')
#sever.set_debuglevel(1)
sever.login(username,password)
sever.sendmail(sender,receiver,msg.as_string())
sever.quit()

这里边很奇怪的一步是subject中带有英文就会报错,中文则不会报错,不知道是啥问题

第三步任务计划程序:
这一步使用的是自带的任务计划程序,这一步比较简单,但要注意的是添加参数处填写的是python脚本的位置,起始于是运行脚本的python环境,因为本次尝试的脚本只能在32位的环境下才能连接数据库,因此环境很重要

后续完善方向:可以用python开发调度任务;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值