python 实现发邮件

第一版本 

#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 '数据正常'


 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值