Как получать неотвеченные письма с помощью Java-почты?

я пытался

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

для получения списка неотвеченных писем из почтового ящика, но возвращает все письма из почтового ящика.

message.isSet(Flags.Flag.ANSWERED);

также дает такой же результат.

Как я могу вывести список прочитанных, но неотвеченных писем из почтового ящика?


person user2144041    schedule 07.03.2013    source источник


Ответы (2)


Вы используете IMAP? В противном случае это не сработает.

Программа чтения почты может установить флаг ANSWERED для сообщения, когда вы отвечаете на это сообщение. Некоторые читатели почты могут этого не делать. Какую программу чтения почты вы используете?

person Bill Shannon    schedule 07.03.2013
comment
Да, я использую imap.gmail.com - person user2144041; 08.03.2013
comment
Если вы также используете веб-интерфейс gmail.com, вам может потребоваться поэкспериментировать, чтобы увидеть, устанавливает ли он флаг ОТВЕТИТЬ, когда вы отвечаете на сообщение. - person Bill Shannon; 09.03.2013

загрузите JavaMail API и убедитесь, что соответствующие файлы jar находятся в вашем пути к классам.

с помощью веб-интерфейса gmail.com вам необходимо изменить настройку заблокировано на разблокировку для учетной записи gmail. импортировать java.util. ; импортировать javax.mail.; import javax.mail.internet. *;

public class Main {

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();
    }
}

}

person Devicedriver    schedule 23.01.2015