2012-07-05 87 views
0

我們需要爲不支持IMAP的Hotmail構建客戶端。根據我的理解,您必須使用帶POP3的交換,但POP3不支持將郵件從一個文件夾移動到另一個文件夾。我們需要的功能:IMAP for Hotmail等效

  • 能夠在不將其標記爲已讀郵件「讀」
  • 能夠刪除郵件
  • 能夠移動郵件出收件箱到另一個文件夾,並標記爲已讀

任何方式來得到這個工作?

回答

-1

你可以用JavaMail做你需要的一切。這裏是API

這是一個從收件箱中獲取所有未讀郵件並將其標記爲已讀的示例。看看文件夾類(特別是copyMessages()方法)將消息移動到新文件夾。

import java.util.Properties; 
import javax.mail.*; 
import javax.mail.search.FlagTerm; 

public class Driver { 
    public static void main(String[] args){ 

     // Create properties (disable security checks on server) 
     Properties props = new Properties(); 

     // Get session 
     Session session = Session.getDefaultInstance(props, null); 

     try{ 
      // Get the store 
      Store store = session.getStore("pop3"); 
      store.connect("servername", "username", "password"); 

      //connection configuration 
      Folder folder = store.getFolder("INBOX"); 
      folder.open(Folder.READ_WRITE); 

      //get all unread messages in the inbox 
      FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), true); 
      Message[] messages = folder.search(ft); 

      for (int i = messages.length -1; i>=0; i--) { 
        messages[i].setFlag(Flags.Flag.SEEN, true); 
       } 

      // Close connection 
      folder.close(false); 
      store.close(); 
     } 
     catch(Exception e){ 
        e.printStackTrace(); 
     } 
    } 
+0

是否可以將郵件從一個文件夾移動到另一個文件夾?這是一個基本要求。 – djechlin 2012-07-05 19:47:52

+0

是的,檢查'Folder'類和'copyMessages()'方法。你給它一個'Message'對象的數組和你想要它們移動到的目標文件夾。 – 2012-07-05 20:52:44

+1

由於Hotmail不支持IMAP,並且Javamail不支持RPC over HTTP,您將如何在Hotmail上的文件夾之間移動郵件? – 2012-07-06 12:22:55

0

簡短的回答,第

許可微軟的ActiveSync協議。

有一個用於Hotmail的Outlook連接器。也許有大量的JNI,但首先檢查許可證。