• python发送邮件


    1、python发送普通文本邮件

    import smtplib  
    from email.mime.text import MIMEText  
    mailto_list=["YYY@YYY.com"] #设置收件人
    mail_host="XXX.XXX.com"  #设置服务器
    mail_port=xxx #设置服务器端口号 mail_user="XXX" #用户名 mail_pass="XXXX" #口令
    def send_mail(to_list,sub,content): #to_list:收件人;sub:主题;content:邮件内容 me="XXX.XXX.com"#设置发件人 msg = MIMEText(content,_subtype='html',_charset='UTF-8') #创建一个实例,这里设置为html格式邮件 msg['Subject'] = sub #设置主题 msg['From'] = me msg['To'] = ";".join(to_list) try: s = smtplib.SMTP() s.connect(mail_host,mail_port) #连接smtp服务器,mail_port默认为25 s.login(mail_user,mail_pass) #登陆服务器 s.sendmail(me, to_list, msg.as_string()) #发送邮件 s.close() return True except Exception, e: print str(e) return False if __name__ == '__main__': if send_mail(mailto_list,"hello","python发送出来的邮件"): print "发送成功" else: print "发送失败"

    2、python发送html格式邮件

    import smtplib  
    from email.mime.text import MIMEText  
    mailto_list=["YYY@YYY.com"] #设置收件人
    mail_host="XXX.XXX.com"  #设置服务器
    mail_port=xxx  #设置服务器端口号
    mail_user="XXX"    #用户名
    mail_pass="XXXX"   #口令 
      
    def send_mail(to_list,sub,content):  #to_list:收件人;sub:主题;content:邮件内容
        me="XXX.XXX.com" #设置发件人
        msg = MIMEText(content,_subtype='html',_charset='gb2312')    #创建一个实例,这里设置为html格式邮件
        msg['Subject'] = sub    #设置主题
        msg['From'] = me  
        msg['To'] = ";".join(to_list)  
        try:  
            s = smtplib.SMTP()  
            s.connect(mail_host,mail_port)  #连接smtp服务器,端口号默认为25
            s.login(mail_user,mail_pass)  #登陆服务器
            s.sendmail(me, to_list, msg.as_string())  #发送邮件
            s.close()  
            return True  
        except Exception, e:  
            print str(e)  
            return False  
    if __name__ == '__main__':  
        if send_mail(mailto_list,"hello","<a href='http://www.baidu.com'>百度一下</a>"):  
            print "发送成功"  
        else:  
            print "发送失败"  

     3、发送带正文和附件的邮件

    #coding=utf-8
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    import smtplib
    
    #创建一个带附件的实例
    msg = MIMEMultipart()
    
    #构造邮件正文内容,注意构造邮件正文只能有一个
    #注意正文部分一定要放在第一位置,如果放在后面构造附件代码的后面attach,那么就会变成附件内容处理
    contentText= MIMEText("这是带有附件的邮件,详情见附件") #貌似可省略subtype和charset设置也能正常显示,最好加上咯
    msg.attach(contentText)
    
    #构造邮件正文内容,可读取文件内容作为正文
    #contentText1 = MIMEText(open('D:\test\login.html', 'rb').read(), _subtype='html',_charset='utf-8')
    #msg.attach(contentText1 )
    
    #构造附件1
    att1 = MIMEText(open('D:\test\login.html', 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="login.html"'#这里的filename可以任意写,实际上是在邮件中这个附件显示的文件名
    msg.attach(att1)
    
    #构造附件2
    att2 = MIMEText(open('D:\BugReport.txt', 'rb').read(), 'base64', 'gb2312')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="BugReport.txt"'  #这里的filename可以任意写,实际上是在邮件中这个附件显示的文件名
    msg.attach(att2)
    
    
    
    #加邮件头
    msg['to'] = 'XXX@rd.com'
    msg['from'] =  'XXX@rd.com'
    msg['subject'] = 'hello world'
    #发送邮件
    try:
        server = smtplib.SMTP()
        server.connect('exchange-3.rd.com',25)#默认端口号也是25
        server.login('XXX','XXXXX')#XXX为用户名,XXXXX为密码
        server.sendmail(msg['from'], msg['to'],msg.as_string())
        server.quit()
        print '发送成功'
    except Exception, e:  
        print str(e) 
  • 相关阅读:
    ajax上传文件
    nginx location指令详解
    总结php删除html标签和标签内的内容的方法
    useBuiltIns: 'usage'
    uni-app如何页面传参数的几种方法总结
    基于 schema 的数据校验
    canvas时点击事件和长按冲突
    vue 下载文件流,后台是get方式 ,并且导出出现excel乱码问题
    uni-app canvas 实现文字居中
    git reflog 回退
  • 原文地址:https://www.cnblogs.com/pachongshangdexuebi/p/5293178.html
Copyright © 2020-2023  润新知