from email import MIMEMultipart from email import MIMEText from email import MIMEImage from email.utils import COMMASPACE, formatdate def sendmailFunc(htmlContent, userMailList, title): try: if (len(htmlContent) < 1): print "htmlContent is None!" userMailList = defaultEmailList #必須引用MIMEMultipart.MIMEMultipart,不然'LazyImporter' object is not callable msg = MIMEMultipart.MIMEMultipart('alternative') msg['Subject'] = (title).decode('utf-8') #From 必須與login、sendmail一致,不然qq郵箱會判斷爲垃圾郵件。 msg['From'] = 'test@163.com' msg['To'] = COMMASPACE.join(userMailList) msg['Date'] = formatdate(localtime=True) msg.attach(MIMEText.MIMEText(htmlContent, 'html', 'utf-8')) smtp = smtplib.SMTP() smtp.connect("smtp.exmail.qq.com", "25") # 此處爲公司web郵箱安全受權碼,而非 oa 登陸密碼。 smtp.login('test@163.com', '安全受權碼') if len(msg.as_string()) > 0: smtp.sendmail('test@163.com', userMailList, msg.as_string()) smtp.close() print getNowTime() + " ------------>> mail send success..." except Exception, e: print getNowTime() + " -------- " + str(e)
————————————————————————————————————————————html
#coding:utf-8 from writeLog import * import urllib2 import smtplib import datetime import re, sys from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEImage import MIMEImage from email.Utils import COMMASPACE, formatdate reload(sys) sys.setdefaultencoding('utf-8') def sendMailHtml(title, date, logData, receviers): msg = MIMEMultipart('alternative') msg['Subject'] = (title + '【%s】' % date).decode('utf-8') msg['From'] = 'noreply@ooxx.com' msg['To'] = COMMASPACE.join(receviers) msg['Date'] = formatdate(localtime=True) msg.attach(MIMEText(logData, 'html', 'utf-8')) smtp = smtplib.SMTP() smtp.connect("smtp.exmail.qq.com", "25") smtp.login('noreply@ooxx.com', 'passwd') if (len(msg.as_string()) > 0): smtp.sendmail('noreply@ooxx.com', receviers, msg.as_string()) smtp.close() def sendMailAtt(title, date, logData, receviers): #建立一個帶附件的實例 msg = MIMEMultipart() #構造附件 att = MIMEText(logData, 'base64', 'utf-8') att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'attachment; filename=' + infoLogName.split("/")[-1] msg.attach(att) #加郵件頭 msg['Subject'] = (title + '【%s】' % date).decode('utf-8') msg['From'] = 'noreply@ooxx.com' msg['To'] = COMMASPACE.join(receviers) msg['Date'] = formatdate(localtime=True) #發送郵件 smtp = smtplib.SMTP() smtp.connect("smtp.exmail.qq.com", "25") smtp.login('noreply@ooxx.com', 'passwd') if (len(msg.as_string()) > 0): smtp.sendmail('noreply@ooxx.com', receviers, msg.as_string()) smtp.close() if __name__ == '__main__': dateTime = datetime.date.today() - datetime.timedelta(days=0) strDate = str(dateTime.strftime('%Y-%m-%d')) print strDate try: receivers = ['username@ooxx.com'] logData = os.popen("sort -t$'\t' -k2n " + infoLogName).read() sendMailAtt('你的郵件名 - ', strDate, logData, receivers) errorLogger.info("------------>> send success...") except Exception, e: errorLogger.info("--------" + str(e))
Refer:python
[1] Python 發送郵件能夠添加附件web
http://www.oschina.net/code/snippet_221343_49994安全
[2] TypeError: 'LazyImporter' object is not callableapp
http://stackoverflow.com/questions/34348069/typeerror-lazyimporter-object-is-not-callableurl
[3] LazyImporter not callablespa
http://blog.gmane.org/gmane.comp.python.mime.devel/month=20061201.net