Черновики вложений gmail появляются в папке корзины при использовании javamail

Я использую javamail для чтения электронных писем из папки «Корзина» Gmail, и если в папке «Черновики» есть электронная почта с вложениями, эти вложения отображаются в папке «Корзина».

Шаги для воспроизведения: 1) создайте новое электронное письмо с вложениями и закройте его, оно появится в папке «Черновики». 2) Прочитайте электронные письма из папки «Корзина», используя программу ниже. Появятся вложения из черновика электронной почты. Если я открою папку «Корзина» в браузере, я не увижу эти вложения. Знаете ли вы, почему вложение появляется в папке «Корзина», когда электронные письма читаются с помощью javamail?

import java.io.IOException;
import java.util.Properties;

import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;


public class MailClient {

    public static void main(String[] args) throws Exception {
        MailClient client = new MailClient();
        client.execute();
    }

    void execute() throws MessagingException, IOException {
        String[] credentials = new String[] {"[email protected]", "password"};
        boolean debug = false;

        Folder folder = null;
        Store store = null;
        try {
            Properties props = System.getProperties();
            props.setProperty("mail.store.protocol", "imaps");

            Session session = Session.getDefaultInstance(props, null);
            session.setDebug(debug);
            store = session.getStore("imaps");
            store.connect("imap.gmail.com", credentials[0], credentials[1]);
            folder = store.getFolder("[Gmail]/Trash");
            folder.open(Folder.READ_WRITE);

            Message messages[] = folder.getMessages();
            System.out.println("No of Messages : " + folder.getMessageCount());
            System.out.println("No of Unread Messages : " + folder.getUnreadMessageCount());
            for (int i = 0; i < messages.length; ++i) {
                System.out.println("MESSAGE #" + (i + 1) + ":");
                Message msg = messages[i];

                String from = "unknown";
                if (msg.getReplyTo().length >= 1) {
                    from = msg.getReplyTo()[0].toString();
                } else if (msg.getFrom().length >= 1) {
                    from = msg.getFrom()[0].toString();
                }
                String subject = msg.getSubject();
                System.out.println(subject);
                msg.setFlag(Flags.Flag.SEEN, true);
            }
        } finally {
            if (folder != null) {
                folder.close(true);
            }
            if (store != null) {
                store.close();
            }
        }
    }
}

person ako    schedule 13.08.2014    source источник
comment
У меня такая же проблема. Призрачные вложения отображаются с точки зрения IMAP, но не отображаются в клиенте Gmail. Не уверен, что именно здесь делает Google.   -  person Brain2000    schedule 13.03.2015


Ответы (1)


Ваша программа ничего не делает с вложениями. Как вы думаете, почему вложения в черновик сообщения, а не само сообщение, появляются в папке «Корзина»? И к какому сообщению в папке «Корзина» прикреплены эти вложения?

Как вы создаете черновик сообщения? Через веб-интерфейс Gmail? Возможно ли, что Gmail сохраняет несколько черновиков вашего черновика сообщения, а старые черновики перемещаются в папку «Корзина», а в папке «Черновики» остается только последний черновик?

person Bill Shannon    schedule 13.08.2014
comment
Я создаю черновик сообщения с вложениями через веб-интерфейс Gmail. Корзина пуста - это то, что я вижу в веб-интерфейсе. Затем я хочу прочитать все сообщения из папки «Корзина», используя приложение, которое я показал. Я не ожидаю сообщений, потому что папка «Корзина» пуста, однако приложение получает вложения (в виде сообщений) из сообщения, сохраненного в папке «Черновики». Похоже, что все вложения сообщений в папке «Черновики» перемещаются/копируются в папку «Корзина», но они скрыты. - person ako; 14.08.2014
comment
Может быть, я понятия не имею, как работает Gmail. Являются ли вложения также в сообщениях в папке «Черновики»? Есть ли у сообщений в папке «Корзина» какие-либо флаги? Если вы очистите папку «Корзина», эти сообщения исчезнут? - person Bill Shannon; 14.08.2014