2013-03-07 32 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(); 
    } 
} 

}

相关问题