2013-03-07 33 views
1

我試圖如何使用Java郵件獲取未答覆的郵件?

ft = new FlagTerm(new Flags(Flags.Flag.ANSWERED), false); 

獲得從收件箱中的郵件懸而未決的名單,但是從收件箱中返回的所有郵件。

message.isSet(Flags.Flag.ANSWERED); 

也給出相同的輸出。

如何從收件箱中列出讀取但未解答的郵件?

回答

0

您使用的是IMAP嗎?否則,這將無法工作。

當您回覆該消息時,郵件閱讀器可以在消息上設置ANSWERED標誌。有些郵件閱讀器可能不會那樣做。你使用什麼郵件閱讀器?

+0

是的,我使用imap.gmail.com – user2144041 2013-03-08 06:15:56

+0

如果您還使用了gmail.com網絡接口,你可能需要進行試驗,看是否它在回覆消息時設置ANSWERED標誌。 – 2013-03-08 22:58:59

0

下載JavaMail API並確保相關的jar文件在您的類路徑中。

使用gmail.com網頁界面,您需要將阻塞的設置更改爲解鎖到gmail帳戶。 import java.util。 ; import javax.mail。; import javax.mail.internet。*;

公共類主要{

private static String USER_NAME = "*****"; // GMail user name (just the part before "@gmail.com") 
private static String PASSWORD = "********"; // GMail password 
private static String RECIPIENT = "[email protected]"; 

public static void main(String[] args) { 
    String from = USER_NAME; 
    String pass = PASSWORD; 
    String[] to = { RECIPIENT }; // list of recipient email addresses 
    String subject = "Java send mail example"; 
    String body = "Welcome to JavaMail!"; 

    sendFromGMail(from, pass, to, subject, body); 
} 

private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) { 
    Properties props = System.getProperties(); 
    String host = "smtp.gmail.com"; 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", host); 
    props.put("mail.smtp.user", from); 
    props.put("mail.smtp.password", pass); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.auth", "true"); 

    Session session = Session.getDefaultInstance(props); 
    MimeMessage message = new MimeMessage(session); 

    try { 
     message.setFrom(new InternetAddress(from)); 
     InternetAddress[] toAddress = new InternetAddress[to.length]; 

     // To get the array of addresses 
     for(int i = 0; i < to.length; i++) { 
      toAddress[i] = new InternetAddress(to[i]); 
     } 

     for(int i = 0; i < toAddress.length; i++) { 
      message.addRecipient(Message.RecipientType.TO, toAddress[i]); 
     } 

     message.setSubject(subject); 
     message.setText(body); 
     Transport transport = session.getTransport("smtp"); 
     transport.connect(host, from, pass); 
     transport.sendMessage(message, message.getAllRecipients()); 
     transport.close(); 
    } 
    catch (AddressException ae) { 
     ae.printStackTrace(); 
    } 
    catch (MessagingException me) { 
     me.printStackTrace(); 
    } 
} 

}

相關問題