在服务器上分析一些数据,希望在数据分析完成时,我可以收到一个数据的分析结果邮件。所以在网上找到这段代码,在腾讯的企业邮箱上已经测试过,可以正常使用.
下边是发邮件的相关代码:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date : 2017-02-22 09:44:42
import datetimeimport emailimport smtplibimport osfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart
import DateToolclass MyEmail:def __init__(self):self.confilepth = 'mail.conf'self.user = "" #你的邮件地址self.passwd = "" #你的邮箱密码self.to_list = [] #收件人列表self.cc_list = [] #抄送人列表self.tag = None #邮件标题self.doc = None #邮件附件self.initAccount() #我这里使用的是配制文件初始化上的上边参数def initAccount(self):f = open('mail.conf')tmps = f.readlines()f.close()self.user = tmps[0]self.passwd = tmps[1]if len(tmps) > 2:self.to_list = tmps[2].split(',')if len(tmps) > 3:self.cc_list = tmps[3].split(',')def send(self,ttag,ttext):'''''发送邮件'''self.tag = ttagtry:server = smtplib.SMTP_SSL("smtp.exmail.qq.com",port=465)server.login(self.user,self.passwd)server.sendmail(self.user, self.to_list, self.get_attach(ttext))server.close()print "send email successful"except Exception,e:ortstr = conventStrTOUtf8(str(e))print ortstrprint "send email failed"def get_attach(self,ttext):'''''构造邮件内容'''attach = MIMEMultipart()#添加邮件内容txt = MIMEText(ttext)attach.attach(txt)if self.tag is not None:#主题,最上面的一行attach["Subject"] = self.tagif self.user is not None:#显示在发件人attach["From"] = "Mage<%s>"%self.userif self.to_list:#收件人列表attach["To"] = ";".join(self.to_list)if self.cc_list:#抄送列表attach["Cc"] = ";".join(self.cc_list)if self.doc:pass#估计任何文件都可以用base64,比如rar等#文件名汉字用gbk编码代替# name = os.path.basename(self.doc).encode("gbk")# f = open(self.doc,"rb")# doc = MIMEText('填写邮件内容','plain','utf-8')# doc["Content-Type"] = 'application/octet-stream'# doc["Content-Disposition"] = 'attachment; filename="'+name+'"'# attach.attach(doc)# f.close()return attach.as_string()
if __name__=="__main__":my = MyEmail()tag = "邮件标题"my.send(tag,'发送的邮件文本内容')