python smtplib发送邮件

原创 Laughing  2018-06-25 00:35  阅读 183 次 评论 0 条
  1. import smtplib  
  2. from email.mime.text import MIMEText  
  3. from email.mime.multipart import MIMEMultipart  
  4. from email.mime.application import MIMEApplication  
  5. from email.header import Header  
  6. from app import db  
  7. from app.models import Options  
  8. import os,platform  
  9.   
  10. class EmailCls:  
  11.     """docstring for EmailCls"""  
  12.     def __init__(self,receivers,cc,subject,msg,type='html',encoding='utf-8'):  
  13.         self.receivers=receivers  
  14.         self.subject=subject  
  15.         self.msg=msg  
  16.         self.type=type  
  17.         self.encoding=encoding  
  18.         self.cc=cc  
  19.   
  20.     def __init__(self):  
  21.         self.receivers=[]  
  22.         self.subject=None  
  23.         self.msg=None  
  24.         self.type='html'  
  25.         self.encoding='utf-8'  
  26.         self.cc=[]  
  27.   
  28.   
  29.     #发送邮件  
  30.     def sendMail(self):  
  31.         query = db.session.query(Options)  
  32.         sender = query.filter(Options.option_name=='mailserver_login').first_or_404().option_value  
  33.         host = query.filter(Options.option_name=='mailserver_url').first_or_404().option_value  
  34.         password = query.filter(Options.option_name=='mailserver_pass').first_or_404().option_value  
  35.         port = query.filter(Options.option_name=='mailserver_port').first_or_404().option_value  
  36.         # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码  
  37.         message = MIMEMultipart()  
  38.         content = MIMEText(self.msg, self.typeself.encoding)  
  39.         message['From'] = '李森的博客' # 发送者  
  40.         message['to'] = ";".join(self.receivers)  
  41.         message['Subject'] = self.subject  
  42.         message.attach(content)  
  43.         filePath = ''  
  44.         # jpg类型的附件  
  45.         if platform.platform().startswith('Window'):  
  46.                 filePath = os.path.join(os.getcwd()+'\\app\\static\\img','logo.png')  
  47.         else:  
  48.                 filePath = os.path.join(os.getcwd()+r'/app/static/img','logo.png')  
  49.         jpgpart = MIMEApplication(open(filePath,'rb').read())  
  50.         jpgpart.add_header('Content-Disposition', 'attachment', filename='logo.png')  
  51.         message.attach(jpgpart)  
  52.         print(self.msg, ...)  
  53.         try:  
  54.             smtpObj = smtplib.SMTP_SSL(host,port=port)  
  55.             smtpObj.login(sender, password)  
  56.             smtpObj.sendmail(sender, self.receivers, message.as_string())  
  57.             print ("邮件发送成功")  
  58.         except smtplib.SMTPException as err:  
  59.             print (err, ...)  
本文地址:https://www.lisen.me/python-smtplib-send-email.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情