mirror of
				https://github.com/veops/cmdb.git
				synced 2025-10-31 19:39:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding:utf-8 -*- 
 | |
| 
 | |
| import smtplib
 | |
| import time
 | |
| from email.header import Header
 | |
| from email.mime.image import MIMEImage
 | |
| from email.mime.multipart import MIMEMultipart
 | |
| from email.mime.text import MIMEText
 | |
| from email.utils import make_msgid
 | |
| 
 | |
| from flask import current_app
 | |
| 
 | |
| 
 | |
| def send_mail(sender, receiver, subject, content, ctype="html", pics=()):
 | |
|     """subject and body are unicode objects"""
 | |
|     if not receiver:
 | |
|         return
 | |
|     if not sender:
 | |
|         sender = current_app.config.get("DEFAULT_MAIL_SENDER")
 | |
|     smtpserver = current_app.config.get("MAIL_SERVER")
 | |
|     if ctype == "html":
 | |
|         msg = MIMEText(content, 'html', 'utf-8')
 | |
|     else:
 | |
|         msg = MIMEText(content, 'plain', 'utf-8')
 | |
| 
 | |
|     if len(pics) != 0:
 | |
|         msgRoot = MIMEMultipart('related')
 | |
|         msgText = MIMEText(content, 'html', 'utf-8')
 | |
|         msgRoot.attach(msgText)
 | |
|         i = 1
 | |
|         for pic in pics:
 | |
|             fp = open(pic, "rb")
 | |
|             image = MIMEImage(fp.read())
 | |
|             fp.close()
 | |
|             image.add_header('Content-ID', '<img%02d>' % i)
 | |
|             msgRoot.attach(image)
 | |
|             i += 1
 | |
|         msg = msgRoot
 | |
| 
 | |
|     msg['Subject'] = Header(subject, 'utf-8')
 | |
|     msg['From'] = sender
 | |
|     msg['To'] = ';'.join(receiver)
 | |
|     msg['Message-ID'] = make_msgid()
 | |
|     msg['date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
 | |
| 
 | |
|     if current_app.config.get("MAIL_USE_SSL") or current_app.config.get("MAIL_USE_TLS"):
 | |
|         smtp = smtplib.SMTP_SSL(smtpserver)
 | |
|     else:
 | |
|         smtp = smtplib.SMTP()
 | |
|     smtp.connect(smtpserver, 25)
 | |
|     if current_app.config.get("MAIL_PASSWORD") != "":
 | |
|         smtp.login(current_app.config.get("MAIL_USERNAME"), current_app.config.get("MAIL_PASSWORD")) 
 | |
|     smtp.sendmail(sender, receiver, msg.as_string())
 | |
|     smtp.quit()
 |