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

  • 相关阅读:
    C语言小项目-基于TCP协议和SOCKET编程的网络通信系统
    c语言小项目-使用mysql数据库的图书管理系统
    常用功能函数-密码登陆函数
    C++小项目-吃豆子游戏
    C语言小项目-火车票订票系统
    使用单向链表保存大量数据的基础程序框架
    Oracle创建用户并赋予权限
    Fibonacci sequence 求余数
    sizeof运算符来获取各种数据类型在内存中所占字节数--gyy整理
    C++不同进制整数
  • 原文地址:https://www.cnblogs.com/riskyer/p/3395505.html
Copyright © 2011-2022 走看看