⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emailreceiver.java

📁 使用javamail接收邮件
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/*
 * 创建日期: 2005-11-21
 * 
 * 作    者: 王志晓     易龙软件
 */
package com.eeloo.javamail.sender;

import javax.mail.*;
import javax.mail.internet.*;

import sun.misc.BASE64Decoder;

import com.eeloo.javamail.sender.model.MessageBean;
import com.eeloo.util.StringUtil;
import com.eeloo.util.Util;
import com.sun.mail.util.BASE64DecoderStream;
import com.sun.mail.util.QDecoderStream;

import java.util.*;
import java.io.*;

/**
 * 一个简单邮件接收类.
 */
public class EmailReceiver
{	
	private String unreadMessageCount ="";
  //private MimeMessage mimeMessage = null; 
	private String saveAttachPath = "";          //附件下载后的存放目录 
  //private StringBuffer bodytext = new StringBuffer(); //存放邮件内容的StringBuffer对象 
    private String dateformat = "yy-MM-dd HH:mm";       //默认的日前显示格式 
	

	public String getUnreadMessageCount() {
		return unreadMessageCount;
	}

	public void setUnreadMessageCount(String unreadMessageCount) {
		this.unreadMessageCount = unreadMessageCount;
	}
	
    /**
     * "receive" 方法接收消息并对它们进行处理
     */
    public int getUnreadMessageCountInt(String popServer,String popUser,String popPassword,String flag)
    {
        Store store = null;
        Folder folder = null;
        ArrayList messageList = new ArrayList();
        int unreadMessageCount=0;

        try
        {
            // -- 得到缺省会话--
            Properties props = System.getProperties();
            Session session = Session.getDefaultInstance(props,null);
            session.setDebug(true);
            // -- 得到一个POP3消息存储设备并与它连接--
            store = session.getStore("imap");
            store.connect(popServer,popUser,popPassword);
            
    	        
            // -- 得到缺省文件夹--
            folder = store.getDefaultFolder();
            if(folder == null)
            {
                throw new Exception("No default folder");
            }
            // -- ...以及收件箱 --
            folder = folder.getFolder(flag);
            if(folder == null)
            {
                throw new Exception("No POP3 INBOX");
            }
            // -- 以读写方式打开文件夹--
            folder.open(Folder.READ_WRITE);
            // -- 得到消息包并进行处理--
          Message [] msgs = folder.getMessages();
          unreadMessageCount = folder.getUnreadMessageCount();
          

        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
       finally
        {
            // -- 注意关闭 --
            try
            {
                if(folder != null)
                {
                    folder.close(true);
                }
                if(store != null)
                {
                    store.close();
                }
            }
            catch(Exception ex2)
            {
                ex2.printStackTrace();
            }
        }
        
        return unreadMessageCount;
    }

	/**
     * Main 方法以便从用命令行参数指定的邮件服务器处接收消息
     */
    public static void main(String args[])
    {
        try
        {
            String popServer = "eeloo.com";
            String popUser = "wcb@eeloo.com";
            String popPassword = "111111";
            String flag = "receiveBox";
            EmailReceiver re = new EmailReceiver();
            re.createFolders(popServer,popUser,popPassword);
        }
        catch(Exception ex)
        {
            //java Receiver mail.EchoChina.net EchoChina@EchoChina.net Password
            System.out.println("Usage: java Receiver" + " popServer popUser popPassword");
        }
        System.exit(0);
    }
    
    
    /**
     * "create" 方法创建邮箱
     */
    public void createFolders(String popServer,String popUser,String popPassword)
    {
        Store store = null;
        Folder dfolder = null;

        try
        {
            // -- 得到缺省会话--
            Properties props = System.getProperties();
            Session session = Session.getDefaultInstance(props,null);
            session.setDebug(true);
            // -- 得到一个POP3消息存储设备并与它连接--
            store = session.getStore("imap");
            store.connect(popServer,popUser,popPassword);

    	    // 创建Trash、Sent、Drafts
    	    dfolder = store.getFolder("INBOX.Trash");
    	    if (!dfolder.exists())
    	    	dfolder.create(Folder.HOLDS_MESSAGES);	
    	    System.out.println(dfolder.getName() + " is created");
    	    
    	    
    	    dfolder = store.getFolder("INBOX.Drafts");
    	    if (!dfolder.exists())
    	    	dfolder.create(Folder.HOLDS_MESSAGES);	
    	        System.out.println(dfolder.getName() + " is created");
    	    
    	    
    	    dfolder = store.getFolder("INBOX.Sent");
    	    if (!dfolder.exists())
    	    	dfolder.create(Folder.HOLDS_MESSAGES);	
    	        System.out.println(dfolder.getName() + " is created");
    	    
    	    
    	   
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
       finally
        {
            // -- 注意关闭 --
            try
            {
                if(store != null)
                {
                	dfolder.close(false);
                    store.close();
                }
            }
            catch(Exception ex2)
            {
                ex2.printStackTrace();
            }
        }
        
    }

    
    

    /**
     * "receive" 方法接收消息并对它们进行处理
     */
    public ArrayList receive(String popServer,String popUser,String popPassword,String flag)
    {
        Store store = null;
        Folder folder = null;
        ArrayList messageList = new ArrayList();

        try
        {
            // -- 得到缺省会话--
            Properties props = System.getProperties();
            Session session = Session.getDefaultInstance(props,null);
            session.setDebug(true);
            // -- 得到一个POP3消息存储设备并与它连接--
            store = session.getStore("imap");
            store.connect(popServer,popUser,popPassword);
            
            //创建邮箱
    	    folder = store.getFolder("INBOX.Trash");
    	    if (!folder.exists()){
    	    	folder.create(Folder.HOLDS_MESSAGES);	
    	    	System.out.println(folder.getName() + " is created");
    	    }
    	    
    	    folder = store.getFolder("INBOX.Drafts");
    	    if (!folder.exists()){
    	    	folder.create(Folder.HOLDS_MESSAGES);	
    	        System.out.println(folder.getName() + " is created");
    	    }
    	    
    	    
    	    folder = store.getFolder("INBOX.Sent");
    	    if (!folder.exists()){
    	    	folder.create(Folder.HOLDS_MESSAGES);	
    	        System.out.println(folder.getName() + " is created");
    	    }
    	        
            // -- 得到缺省文件夹--
            folder = store.getDefaultFolder();
            if(folder == null)
            {
                throw new Exception("No default folder");
            }
            // -- ...以及收件箱 --
            folder = folder.getFolder(flag);
            if(folder == null)
            {
                throw new Exception("No POP3 INBOX");
            }
            // -- 以读写方式打开文件夹--
            folder.open(Folder.READ_WRITE);
            // -- 得到消息包并进行处理--
          Message [] msgs = folder.getMessages();
         
          int messageCount = folder.getMessageCount();
          int unreadMessageCount = folder.getUnreadMessageCount();

          this.setUnreadMessageCount("("+unreadMessageCount+"/"+messageCount+")");
          
            for(int msgNum = msgs.length-1; msgNum >=0; msgNum--)
            {
            	//if(!msgs[msgNum].isSet(Flags.Flag.DELETED)){
            		messageList.add(addMessage(msgs[msgNum]));
            	//}
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
       finally
        {
            // -- 注意关闭 --
            try
            {
                if(folder != null)
                {
                    folder.close(true);
                }
                if(store != null)
                {
                    store.close();
                }
            }
            catch(Exception ex2)
            {
                ex2.printStackTrace();
            }
        }
        
        return messageList;
    }

    
    public MessageBean read(String popServer,String popUser,String popPassword,String flag,int msgnum)
    {
        Store store = null;
        Folder folder = null;
        Message  msgs=null;
        MessageBean mbean = new MessageBean();

        try
        {
            // -- 得到缺省会话--
            Properties props = System.getProperties();
            Session session = Session.getDefaultInstance(props,null);
            session.setDebug(true);
            // -- 得到一个POP3消息存储设备并与它连接--
            store = session.getStore("imap");
            store.connect(popServer,popUser,popPassword);
            // -- 得到缺省文件夹--
            folder = store.getDefaultFolder();
            if(folder == null)
            {
                throw new Exception("No default folder");
            }
            // -- ...以及收件箱 --
            folder = folder.getFolder(flag);
            if(folder == null)
            {
                throw new Exception("No POP3 INBOX");
            }
            // -- 以读写方式打开文件夹--
            folder.open(Folder.READ_WRITE);
            // -- 得到消息包并进行处理--
            msgs = folder.getMessage(msgnum);
            msgs.setFlag(Flags.Flag.SEEN,true);
            
            int messageCount = folder.getMessageCount();
            int unreadMessageCount = folder.getUnreadMessageCount();

            this.setUnreadMessageCount("("+unreadMessageCount+"/"+messageCount+")");
            mbean = readMessage(msgs);
            
  
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
       finally
        {
            // -- 注意关闭 --
            try
            {
                if(folder != null)
                {
                    folder.close(true);
                }
                if(store != null)
                {
                    store.close();
                }
            }
            catch(Exception ex2)
            {
                ex2.printStackTrace();
            }
        }
        
        return mbean;
    }
    
    
    public MessageBean readMessage(Message message)
    {
    	MessageBean messageBean = new MessageBean();
    	ArrayList attachmentNames = new ArrayList();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -