两个小问题
时间:2011-11-02
来源:互联网
这是一个检测服务器某协议运行情况的脚本(地址账户密码等用“*”掩盖):
Python code
两个问题:
1.收到的邮件中文都被显示为乱码,不管是在网页还是在foxmial里面,我对编码的概念比较模糊;
2.能不能把这个脚本做成windows服务:循环执行get_val(),一旦发现它返回0,立即发送邮件给管理员?用什么办法做,需要编译成exe么?
Python code
#coding:gb2312 import urllib,smtplib def get_val(): #获取协议运行值 url = 'http://*.*.*.*:8161/admin/topics.jsp' lines = urllib.urlopen(url).readlines() n = lines.index('1009_1</a></td>\n') val = lines[n+1].replace('<td>','').replace('</td>\n','') if val == '1': return 1 #返回1表示运行正常 elif val == '0': return 0 #返回2表示服务停止 else: return -1 #返回-1表示未知错误 def sendmail(): #向管理员发送邮件,报告异常 fromaddr = '****@***.com' toaddrs = fromaddr pws='*****' Subject = '**网关异常' Content = '检测到协议号1009_1值为0,请重新启动该服务' msg = '\n'.join(['From:%s'%fromaddr,'To:%s'%toaddrs,'Subject:%s'%Subject,Content]) server = smtplib.SMTP('smtpcom.*.com','25') server.login(fromaddr,pws) server.sendmail(fromaddr,toaddrs,msg) if __name__ == '__main__': if get_val() == 0: sendmail()
两个问题:
1.收到的邮件中文都被显示为乱码,不管是在网页还是在foxmial里面,我对编码的概念比较模糊;
2.能不能把这个脚本做成windows服务:循环执行get_val(),一旦发现它返回0,立即发送邮件给管理员?用什么办法做,需要编译成exe么?
作者: JacksonLv 发布时间: 2011-11-02
用死循环运行检测
Python code
带中文的信息要编码为utf8,从我的代码里抠出来的
Python code
Python code
if __name__ == '__main__': while 1: # 检测到就发邮件,最好加个flag,免得服务挂了,不停发邮件
带中文的信息要编码为utf8,从我的代码里抠出来的
Python code
msg.decode('cp936').encode('utf8')
作者: libralibra 发布时间: 2011-11-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28