zoukankan      html  css  js  c++  java
  • python读取pop3服务器邮件并且下载

    # -*- coding: cp936 -*-
    import poplib
    import random
    import os
    
    
    def getmail():
        
        # 蒋辉文拥有该程序权利  你可以随意使用
        emailServer = poplib.POP3('pop.163.com')  
        emailServer.user('xxxxxxxxxxxxxx')  
        emailServer.pass_('xxxxxxxxxxxxxx')  
        # 设置为1,可查看向pop3服务器提交了什么命令  
        #emailServer.set_debuglevel(1)  
          
        # 获取欢迎消息  
        serverWelcome = emailServer.getwelcome()  
        #print serverWelcome  
          
        # 获取一些统计信息  
        emailMsgNum, emailSize = emailServer.stat()  
        #print 'email number is %d and size is %d'%(emailMsgNum, emailSize)  
    
        #判断没有文件夹,则创建目标文件夹
        if not os.path.exists("POP3"):
            print "分析到目录没有POP3文件夹,程序正在自动创建......."
            os.mkdir("POP3")
            
        # 遍历邮件,并打印出每封邮件的标题   
        for i in range(emailMsgNum):
            #生成目标文件
            name="POP3\pop3mail_"+str(random.randint(1,100000000))+".eml";
            file_object = open(name,'w')
            content=''
            for piece in emailServer.retr(i+1)[1]:
                content+=piece
                content+='
    '
             #写入eml
            file_object.write(str(content))
            file_object.close( )     
        emailServer.quit()  
    print "正在下载邮件....请耐心等待....."
    getmail()
    print "....下载完成....."
    

    错误检测(增加了异常检测模块)

    # -*- coding: cp936 -*-
    import poplib
    import random
    import os
    
    
    def getmail():
        
        # 蒋辉文拥有该程序权利  你可以随意使用
        try:  
            emailServer = poplib.POP3('pop.163.com')  
            emailServer.user('xxxxxxxx')  
            emailServer.pass_('xxxxxxx')  
            # 设置为1,可查看向pop3服务器提交了什么命令  
            #emailServer.set_debuglevel(1)  
            # 获取欢迎消息  
            serverWelcome = emailServer.getwelcome()  
              
            # 获取一些统计信息  
            emailMsgNum, emailSize = emailServer.stat()  
    
            #判断没有文件夹,则创建目标文件夹
            if not os.path.exists("POP3"):
                print "分析到目录没有POP3文件夹,程序正在自动创建......."
                os.mkdir("POP3")
    
            print "正在下载邮件...."
            # 遍历邮件,并打印出每封邮件的标题   
            for i in range(emailMsgNum):
                #生成目标文件
                name="POP3\pop3mail_"+str(random.randint(1,100000000))+".eml";
                file_object = open(name,'w')
                content=''
                for piece in emailServer.retr(i+1)[1]:
                    content+=piece
                    content+='
    '
                 #写入eml
                file_object.write(str(content))
                file_object.close( )     
            emailServer.quit()
    
            #程序执行成功
            print "....下载完成....."
            
        except poplib.error_proto,e:
            print "用户名或密码错误!请重新输入"
    print "正在下载邮件....请耐心等待....."
    getmail()
    
    



     

    这个是本人在开发公司的一个项目中的一部分,觉得还不错,就贴出来供大家使用

    程序从pop3服务器中下载邮件到程序当前目录下的POP3文件夹,如果不存在POP3文件夹,程序自动创建。

    需要提供POP3协议的服务器IP,用户名(即完整邮箱地址),密码

    经过PYTHON2.7测试成功。

    有问题加QQ2586900741

  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/riskyer/p/3395505.html
Copyright © 2011-2022 走看看