Отсутствует папка IMAP "Отправленные сообщения" по умолчанию

Я использую отличную библиотеку inbox node.js, и для некоторых учетных записей электронной почты я не вижу некоторые из почтовые ящики по умолчанию, такие как «Отправленные сообщения». Я в значительной степени использую код примера как есть с OAUTH2;

client = inbox.createConnection(false, "imap.gmail.com", {
    secureConnection: true,
    auth: {
        XOAuth2: {
            user: account.email,
            clientId: Settings.googleApp.clientId,
            clientSecret: Settings.googleApp.secretId,
            refreshToken: refreshToken,
            accessToken: accessToken,
            timeout: expires
        }
    }
});

client.connect();

client.on("connect", function() {

    Logger.debug("Opening mailbox " + mailbox);

    self.getMailboxes(function(err, boxes){
        var boxNames = _.pluck(boxes, 'name');
        Logger.info(boxNames);
    });
}

Я немного запутался....


person Mike P    schedule 25.02.2014    source источник
comment
Почтовый ящик находится в иерархии [Gmail] и может быть локализован. На английском это называется [Gmail]/Sent Messages.   -  person Max    schedule 25.02.2014
comment
После беглого просмотра документации по почтовому ящику я рискну предположить, что вы хотите посмотреть на тип почтового ящика. Найдите почтовый ящик нужного типа. Какой правильный тип? Ну, возможно, библиотека отличная, но эта документация - нет;)   -  person arnt    schedule 25.02.2014
comment
Спасибо, я нашел папку [Gmail]/Sent Messages, которая, как мне кажется, является дочерним почтовым ящиком для всех сообщений. Я просто подумал, что спецификация IMAP указывает, что почтовый ящик по умолчанию для отправленных сообщений должен существовать, и странно, что для некоторых учетных записей Gmail он существует, но не для всех.   -  person Mike P    schedule 25.02.2014


Ответы (1)


Спасибо, поэтому в итоге я использовал тип (type='Sent') и перебрал все дочерние почтовые ящики, чтобы извлечь все почтовые ящики Sent, что позволяет использовать имена для почтовых ящиков, зависящие от локали. Вот код;

        client.listMailboxes(function(error, mailboxes){

            var _findSent = function(mailbox, callback){

                if(mailbox.hasChildren){

                    mailbox.listChildren(function(error, children){

                        var sent = [];

                        for(var i=0; i < children.length; i++){

                            if (children[i].type == 'Sent'){
                                sent.push(children[i]);
                            }
                        }

                        callback(null, sent);

                    });

                }
                else {

                    var sent = [];

                    if (mailbox.type == 'Sent'){
                        sent.push(mailbox);
                    }

                    callback(null, sent);
                }

            }


            async.map(mailboxes, _findSent, function(err, results){
                onGotSentMailboxes(_.flatten(results));
            });

        });
person Mike P    schedule 25.02.2014