python將MYSQL中的數據以HTML形式郵件發送

直接上代碼:

#coding:utf8

import smtplib

import MySQLdb

from email.header import Header

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

import sys

reload(sys)

sys.setdefaultencoding('utf8')

def sendMail():

# 定義相關數據,請更換自己的真實數據

smtpserver = 'smtp.163.com'

smptport = '587'

sender = '[email protected]'

receiver = '[email protected]'

username = '[email protected]'

password = '123456'

msg = MIMEMultipart()

conn= MySQLdb.connect(

host='10.21.129.46',

port = 3306,

user='root',

passwd='123456',

db="mysqlcenter",

charset="utf8"

)

cur = conn.cursor()

sqlstring=cur.execute("select ip,port,'success',proobject,current_date from ip_monitor where ip in (select ip from ip_userlist where addtime> DATE_FORMAT(NOW(),'%Y-%m-%d'))union all select ip,port,'failed',proobject,current_date from ip_monitor where ip not in (select ip from ip_userlist where addtime> DATE_FORMAT(NOW(),'%Y-%m-%d'));;")

#print aa

info = cur.fetchmany(sqlstring)

#cur.executemany("insert into student1 values(%s,%s,%s,%s)",info)

#print info

tblist=""

#tblist.encode("utf-8")

for ii in info:

tblist=tblist+"

"+ii[0]+""+ii[1]+""+ii[2]+""+str(ii[3])+""+str(ii[4])+""

#print ii[3]

#print tblist

#print tblist

cur.close()

conn.commit()

conn.close()

tblist=tblist.encode("utf-8")

#print tblist

boby="""

"

<title>Document/<title>

<table>

ip

port

userStatus

proobject

time

"""+tblist+"""

/<table>

"""

mail_body = MIMEText(boby, _subtype='html', _charset='utf-8')

#mail_body = MIMEText(boby, _subtype='html','utf-8')

msg['Subject'] = Header("mysql 每日收集用戶名及密碼郵件", 'utf-8')

msg['From'] = sender

receivers = receiver

toclause = receivers.split(',')

msg['To'] = ",".join(toclause)

print(msg['To'])

msg.attach(mail_body)

# 登陸併發送郵件

try:

smtp = smtplib.SMTP(smtpserver,587)

smtp.starttls()

##打開調試模式

#smtp.set_debuglevel(1)

#print(smtp.connect(smtpserver,587))

print('connected')

smtp.login(username, password)

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

print("郵件發送成功")

except Exception as ex:

print(ex)

print("郵件發送失敗!!")

sendMail()


------------------------------結束--------------------------

以下是發送出來的郵件


python將MYSQL中的數據以HTML形式郵件發送

"


分享到:


相關文章: