如何使用java访问gmail中的标签文件夹?

如何使用java访问gmail中的标签文件夹?,java,Java,我们可以从gmail收件箱中阅读邮件,但我们可以从标签上阅读吗? 如果我从下面的例子中 import java.util.Properties; 导入javax.mail.Folder; 导入javax.mail.Message; 导入javax.mail.MessaginException; 导入javax.mail.NoSuchProviderException; 导入javax.mail.Session; 导入javax.mail.Store; 公共类收件箱阅读器{ 公共静态void ma

我们可以从gmail收件箱中阅读邮件,但我们可以从标签上阅读吗? 如果我从下面的例子中

import java.util.Properties;
导入javax.mail.Folder;
导入javax.mail.Message;
导入javax.mail.MessaginException;
导入javax.mail.NoSuchProviderException;
导入javax.mail.Session;
导入javax.mail.Store;
公共类收件箱阅读器{
公共静态void main(字符串参数[]){
Properties props=System.getProperties();
props.setProperty(“mail.store.protocol”、“imaps”);
试一试{
Session Session=Session.getDefaultInstance(props,null);
Store Store=session.getStore(“imaps”);
store.connect(“imap.gmail.com”、“密码”);
系统输出打印项次(存储);
文件夹收件箱=store.getFolder(“收件箱”);
收件箱。打开(文件夹。只读);
messages[]=inbox.getMessages();
用于(消息:消息){
System.out.println(消息);
}
}捕获(无此提供异常e){
e、 printStackTrace();
系统出口(1);
}捕获(消息异常e){
e、 printStackTrace();
系统出口(2);
}
}
}
如果我用标签名称更改“收件箱”,它会抛出一个错误:找不到收件箱。
有什么帮助吗?

请尝试以下对我有用的代码:

store.getFolder("FolderNameGoesHere");

private static Store getConnection() throws MessagingException {
    Properties properties;
    Session session;
    Store store;
    properties = new Properties();
    properties.setProperty("mail.host", "imap.gmail.com");
    properties.setProperty("mail.port", "995");
    properties.setProperty("mail.transport.protocol", "imaps");
    session = Session.getInstance(properties,
                                  new javax.mail.Authenticator() {
                                      protected PasswordAuthentication getPasswordAuthentication() {
                                          return new PasswordAuthentication("dummy@gmail.com",
                                                                            "dummy");
                                      }
                                  });
    store = session.getStore("imaps");
    store.connect();
    return store;

}

public static boolean isMailReceivedBySubject(String subject,String folder) throws MessagingException {
    Store store = null;
    boolean emailReceived = false;
    try {
        store = getConnection();
        Folder mailFolder = store.getFolder(folder);
        mailFolder.open(Folder.READ_WRITE);
        SearchTerm st = new AndTerm(new SubjectTerm(subject), new BodyTerm(subject));
        Message[] messages = mailFolder.search(st);
        for (Message message : messages) {
            System.out.println("message  : " + message.getSubject());
            if (message.getSubject().contains(subject)) {
                System.out.println("Found the email subject : " + subject);
                emailReceived = true;
                break;
            }
        }
        return emailReceived;
    }finally {
        if (store != null) {
            store.close();
        }
    }
}

所以在这行:
folderinbox=store.getFolder(“inbox”)
你能试试这样的方法吗:
文件夹收件箱=store.getFolder(“foldernamegoesher”)收件箱=store.getFolder(“folderA”);结果是内容:javax.mail.internet。MimeMultipart@183967b,内容不是字符串。我的问题通过msg.writeTo(System.out)解决;msg.setFlag(Flags.Flag.DELETED,true);
store.getFolder("FolderNameGoesHere");

private static Store getConnection() throws MessagingException {
    Properties properties;
    Session session;
    Store store;
    properties = new Properties();
    properties.setProperty("mail.host", "imap.gmail.com");
    properties.setProperty("mail.port", "995");
    properties.setProperty("mail.transport.protocol", "imaps");
    session = Session.getInstance(properties,
                                  new javax.mail.Authenticator() {
                                      protected PasswordAuthentication getPasswordAuthentication() {
                                          return new PasswordAuthentication("dummy@gmail.com",
                                                                            "dummy");
                                      }
                                  });
    store = session.getStore("imaps");
    store.connect();
    return store;

}

public static boolean isMailReceivedBySubject(String subject,String folder) throws MessagingException {
    Store store = null;
    boolean emailReceived = false;
    try {
        store = getConnection();
        Folder mailFolder = store.getFolder(folder);
        mailFolder.open(Folder.READ_WRITE);
        SearchTerm st = new AndTerm(new SubjectTerm(subject), new BodyTerm(subject));
        Message[] messages = mailFolder.search(st);
        for (Message message : messages) {
            System.out.println("message  : " + message.getSubject());
            if (message.getSubject().contains(subject)) {
                System.out.println("Found the email subject : " + subject);
                emailReceived = true;
                break;
            }
        }
        return emailReceived;
    }finally {
        if (store != null) {
            store.close();
        }
    }
}