python 發送郵件

# coding=utf-8
import smtplib
from time import sleep
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(**param):    '''    發送郵件    author:cdq    :param param:{"username":"","password":"","from_addr":"","to_addr":"","smtpserver":"","subject":"","file_path":""}    :file_path=文件路徑    :return:    '''    error = ""    flag = True    try:        # from conf_isms.adconf import local_host_ip        if not param['is_send']:            flag = False        msg = MIMEMultipart()        content = '<span>您好:</span><br><span style="text-indent: 2em;">' \                  '&nbsp;&nbsp;&nbsp;&nbsp;數據報表已發至郵箱,請您查看</span><br><span>' \                  '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;祝您生活愉快!<span>'        body = MIMEText(content, _subtype="html", _charset="utf-8")        msg.attach(body)        if isinstance(param['file_path'], list):            for m in param['file_path']:                att = MIMEText(open(m, 'rb').read(), 'base64', 'utf-8')                file_name = m.split('/')[-1]                att["Content-Type"] = 'application/octet-stream'                att["Content-Disposition"] = 'attachment; filename="%s"' % file_name.encode('gbk')  # 防止下載文件名亂碼                msg.attach(att)        msg['to'] = ';'.join(param['to_addr'])        msg['from'] = param['from_addr']        msg['subject'] = param['subject']        sm = smtplib.SMTP(param['smtpserver'], port=25)        # sm.set_debuglevel(1)        sm.ehlo()        sm.starttls()        sm.ehlo()        sm.login(param['username'], param['password'])        sm.sendmail(param['from_addr'], param['to_addr'], msg.as_string())        sleep(5)        sm.quit()        print "%s  send successfully" % param['file_path']        flag = True    except Exception, ex:        traceback.print_exc()        print "send Failed "        flag = False        error = "error %s" % str(ex)    finally:        return flag, error
相關文章
相關標籤/搜索