Не удалось получить использование учетной записи электронной почты O365: com.sun.mail.iap.BadCommandException: GETQUOTAROOT не поддерживается

Не могли бы вы помочь получить общий выделенный и используемый размер для учетной записи электронной почты O365 с использованием java.

Этот код работал для учетной записи Gmail с соответствующим хостом и портом Gmail, но не работал для O365.

  1. будет ли подключение к общему почтовому ящику и ящику электронной почты обычного пользователя одинаковым набором возможностей?

  2. При подключении к учетной записи Gmail заметил, что мы должны включить менее безопасный доступ к приложениям для успешного получения квоты. (Учетная запись> Безопасность> Небезопасный доступ к приложениям> включено). Должен ли быть включен какой-либо подобный параметр для работы с O365?

Ошибка:

javax.mail.MessagingException: QUOTA not supported;
  nested exception is:
    com.sun.mail.iap.BadCommandException: GETQUOTAROOT not supported
    at java.mail/com.sun.mail.imap.IMAPStore.getQuota(IMAPStore.java:1942)
    at storage.StorageLimit.main(StorageLimit.java:39)
Caused by: com.sun.mail.iap.BadCommandException: GETQUOTAROOT not supported
    at java.mail/com.sun.mail.imap.protocol.IMAPProtocol.getQuotaRoot(IMAPProtocol.java:2742)
    at java.mail/com.sun.mail.imap.IMAPStore.getQuota(IMAPStore.java:1940)
    ... 1 more

Код:

package storage;

import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Quota;
import javax.mail.Session;
import javax.mail.Store;
import com.sun.mail.imap.IMAPStore;

public class StorageLimit {
    public static void main(String[] args) {
        try {
            Properties properties = new Properties();
            properties.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            properties.setProperty("mail.imaps.socketFactory.fallback", "false");
            properties.setProperty("mail.imaps.port", "993");
            properties.setProperty("mail.imaps.socketFactory.port", "993");
            properties.put("mail.imaps.host", "outlook.office365.com");

            Session emailSession = Session.getDefaultInstance(properties);
            // emailSession.setDebug(true);

            // create the IMAP3 store object and connect with the pop server
            Store store = emailSession.getStore("imaps");

            // change the user and password accordingly
            store.connect("outlook.office365.com", 993, "abc@companydomain.com", "password");
            IMAPStore imapStore = (IMAPStore) store;
            System.out.println("imapStore ---" + imapStore);

//          Folder inbox = store.getFolder("INBOX");
            Folder inbox = store.getFolder("INBOX");
            System.out.println("folder quta: "+imapStore.getQuota("INBOX"));


            /* Open the inbox using store. */
            //inbox.open(Folder.READ_ONLY);
                        inbox.open(Folder.READ_WRITE);
//          Message messages[] = inbox.search(new FlagTerm(new Flags(Flags.Flag.ANSWERED), false));
                        //Message[] msgs = inbox.getMessages();
                        System.out.println("No. of Unread Messages : " + inbox.getUnreadMessageCount());
                        System.out.println("No. of Messages : " + inbox.getMessageCount());
                        System.out.println("No. of Deleted Messages : " + inbox.getMode());

            // get quota
            Quota[] quotas = imapStore.getQuota("INBOX");
            // Iterate through the Quotas
            for (Quota quota : quotas) {
                System.out.println(String.format("quotaRoot:'%s'", quota.quotaRoot));
                // Iterate through the Quota Resource
                for (Quota.Resource resource : quota.resources) {
                    System.out.println(String.format("name:'%s', limit:'%s', usage:'%s'", resource.name, resource.limit,
                            resource.usage));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

0 ответов

Другие вопросы по тегам