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+='\r\n'
         #写入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+='\r\n'
             #写入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

 

posted on 2013-10-29 22:31  you Richer  阅读(566)  评论(0编辑  收藏  举报