java Exchange服務接收郵件

/**
serverName 接收郵件地址
user 用戶信息
pwd 密碼
path 郵件臨時儲存路徑
max 每次接收郵件的最大數量
**/

public int receive(String serverName, String user, String pwd, String path, int max) throws Exception {
        //新建ExchangeVersion.Exchange2007_SP1版本的Exchange服務
	ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
	String[] userInfo = user.split("/");
	//用戶認證信息
    	ExchangeCredentials credentials = new WebCredentials(userInfo[1], pwd,userInfo[0]);
    	service.setCredentials(credentials);
    	//設置Exchange鏈接的服務器地址
    	service.setUrl(new URI(serverName));
    	//綁定郵箱
    	Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
    	//獲取郵箱文件數量
    	int count = inbox.getTotalCount();
    	if(max > 0) count = count > max ? max : count; 
        //循環獲取郵箱郵件
    	ItemView view = new ItemView(count);
        FindItemsResults<Item> findResults = service.findItems(inbox.getId(), view);
        for (Item item : findResults.getItems()) {
            EmailMessage message = EmailMessage.bind(service, item.getId());
            List<Attachment> attachs = message.getAttachments().getItems();
            try{
	            if(message.getHasAttachments()){
		            for(Attachment f : attachs){
		            	if(f instanceof FileAttachment){
		            	        //接收郵件到臨時目錄
		            		File tempZip = new File(path,f.getName());
		            		((FileAttachment)f).load(tempZip.getPath());
		            	}
		            }
		            //刪除郵件
		            message.delete(DeleteMode.HardDelete);
	            }
            }catch(Exception err){
            	log.equals(err);
            }
        }
		return count;
	}
相關文章
相關標籤/搜索