第一版本
#coding:utf-8
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
class post_email(object):
def __init__(self,to_addrs):
# 发件人地址
self.from_addr = '66666666@163.com'
# 邮箱密码
self.password = '66666666'
self.smtp_server = 'smtp.163.com'
# 收件人地址
self.to_addrs = ['66666666@163.com']#
self.mail_text='Python爬虫运行异常,异常信息为遇到HTTP 403'
def _format_addr(self,s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
def send_mail(self):
#设置邮件信息
msg = MIMEText(self.mail_text, 'plain', 'utf-8')
msg['Subject'] = Header('一号爬虫运行状态', 'utf-8').encode()
msg['From'] = self._format_addr('一号爬虫 <%s>' % self.from_addr)
for to_addr in to_addrs:
msg['To'] = self._format_addr('管理员 <%s>' % to_addr)
print(to_addr)
#发送邮件
server = smtplib.SMTP(self.smtp_server, 25)
server.login(self.from_addr, self.password)
server.sendmail(self.from_addr, [to_addr], msg.as_string())
server.quit()
if __name__=='__main__':
try:
to_addrs=['66666666.com','66666666@qq.com']
send_mail=post_email(to_addrs)
send_mail.send_mail()
except Exception as e:
print(e)
print('a')
第二版本
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import MySQLdb
# 使用cursor()方法获取操作游标
db = MySQLdb.connect("localhost","root","118169","test_demo",charset='utf8' )
cursor = db.cursor()
querysql="""select count(0) from employee """
aa= cursor.execute(querysql)
querysql1="""show tables; """
cursor.execute(querysql1)
results=cursor.fetchall()
# print results
#打开数据库连接
# 第三方 SMTP 服务
mail_host="smtp.163.com" #设置服务器
mail_user="m13265678@163.com" #用户名
mail_pass="" #口令
sender = '@163.com'
receivers = '@163.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText('工程报错请及时处理', 'plain', 'utf-8')
# print type(message)
# print message
message['From'] = Header("oozie",'utf-8')
message['To'] = Header("负责人", 'utf-8')
subject = '监控mysql数据量邮件'
message['Subject'] = Header(subject, 'utf-8')
print 'aa:'+str(aa)
for i in results:
querysql = "select count(0) from %s "%i
aa=cursor.execute(querysql)
print 'table'+'%s'%i +' data is:'+'%d'%aa
if aa == 0:
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers,
message.as_string())
print "邮件发送成功"
except smtplib.SMTPException:
print "Error: 无法发送邮件"
else:
print '数据正常'