zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    OpenStack 多节点纳管 vCenter 5.5
    OpenStack 多节点纳管 vCenter 5.5
    java.utils.UUID类介绍
    BeanUtils工具类
    Request笔记
    JavaEE_XMind总结
    JavaSE_XMind总结
    完成页面的定时跳转
    使用jsp完成商品列表的动态显示
    Respone笔记
  • 原文地址:https://www.cnblogs.com/danny-chen/p/6203570.html
Copyright © 2011-2022 走看看