• python发送邮件源码 | the5fire的技术博客


    python发送邮件源码 | the5fire的技术博客

    python发送邮件源码

    python发送邮件源码

    这是之前一个公司的面试题中的一小部分。比较习惯把这中工具性的东西单独的写成一个函数,这样以后再用到,直接拿来就好。

    这段代码的作用就是发送邮件可以添加附件,且可以是html样式的邮件。具体看代码吧

    import smtplib
    from email.MIMEText import MIMEText
    from email.MIMEMultipart import MIMEMultipart

    def send_mail(to, sub, content, from_email, mail_pass, filelist = []):
        '''
        to:发给谁
        sub:主题
        content:内容
        from_email:登录邮箱
        mail_pass:登录密码
        filelist:附件列表,文件路径
        send_mail("aaa@126.com","the5fire","welcome to the5fire.net","xxxx@xxx.com","xxxxxx")
        '''

       
        mail_postfix = from_email.split('@')[1]
        mail_host="smtp.%s" % (mail_postfix,)
        mail_user= from_email.split('@')[0]

        me=mail_user+"<"+mail_user+"@"+mail_postfix+">"

        msgRoot = MIMEMultipart('related')
        msgRoot['Subject'] = sub.encode('gbk')
        msgRoot['Form'] = me
        msgRoot['To'] = to
        msgRoot.preamble = 'this is a multi-part message IN MIME format'
       
        msgAlternative = MIMEMultipart('alternative')
        msgRoot.attach(msgAlternative)

        msgText = MIMEText(content, 'html','gbk')
        msgAlternative.attach(msgText)
        for onefile in filelist:
            att = MIMEText(open(onefile,'rb').read(),'base64','gb2312')
            att["Content-Type"] = 'application/octet-stream'
            att["Content-Disposition"] = 'attachment;filename=%s' % onefile
            msgAlternative.attach(att)

        message = msgRoot.as_string()
        try:
            s = smtplib.SMTP()
            try:
                s.connect(mail_host)
            except Exception,e:
                print str(e)
            s.starttls()
            s.login(mail_user,mail_pass)
            s.sendmail(me, to, message)
            s.close()
            return True
        except Exception, e:
            print str(e)
            return False
  • 相关阅读:
    使用 apache ant 轻松实现文件压缩/解压缩(转)
    Ajax下载文件(页面无刷新)
    java实现写大量数据到文件中
    mysql的wait_timeout配置(此处处理方法是有问题的,不建议作为操作参考)
    Class对象
    使用Comparable接口的小例子
    java打印菱形的简单方法
    自适应学习率调整:AdaDelta
    神经网络模型算法与生物神经网络的最新联系
    [杂谈]机器学习:数学、概率与人工智能
  • 原文地址:https://www.cnblogs.com/lexus/p/2850283.html
Copyright © 2020-2023  润新知