Ускорить принятие почты.

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
у тебя есть лист Messages
между 37-38 строками вставь
Messages.Reverse();
Почти то что нужно, но в данном случае мы переворачиваем не ID сообщений, а как раз уже полученные письма. т.е. мы всеравно получаем первые 10 сообщений, но в перевернутом порядке.

да ему откуда это знать, он раньше любил бесплатно снипеты получать а сейчас пиздеть типо заебало читать что типо умным стал
Не стоит из-за какого-то пустяка ссориться.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Почти то что нужно, но в данном случае мы переворачиваем не ID сообщений, а как раз уже полученные письма. т.е. мы всеравно получаем первые 10 сообщений, но в перевернутом порядке.
но ты перевернёшь ID и получишь так же письма, тогда не пойму что надо ?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
я правильно сказал что либа берёт не с последнего а с первого существующего ?

P.S. и только заметил, что за строка такая у тебя где array откуда ты такой массив взял если ты даже его не объявлял, удали ту строку
 
Последнее редактирование:

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
я правильно сказал что либа берёт не с последнего а с первого существующего ?
Да все верно, я думал что после выполнение "var uids = client.Inbox.Search(SearchQuery.All);" мы получаем массив [1,2,4,5, ... , 100], и он берет с начала т.е. 1 , я думал перевернуть массив, чтобы получать 100, 99, 98.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Да все верно, я думал что после выполнение "var uids = client.Inbox.Search(SearchQuery.All);" мы получаем массив [1,2,4,5, ... , 100], и он берет с начала т.е. 1 , я думал перевернуть массив, чтобы получать 100, 99, 98.
так а при чём массив array ? если у тебя в uids
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
так а при чём массив array ? если у тебя в uids
upload_2019-1-12_9-44-41.png

1. На сколько я понимаю, здесь мы получаем ID письм и получаем массив.
2. Перебираем массив полученных ID, и получаем сообщение.

Поэтому я и прицепился к uids, чтобы перевернуть его, и получать последний ID, а не первый.
Я хоть в правильном направлении?:D
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Посмотреть вложение 35159
1. На сколько я понимаю, здесь мы получаем ID письм и получаем массив.
2. Перебираем массив полученных ID, и получаем сообщение.

Поэтому я и прицепился к uids, чтобы перевернуть его, и получать последний ID, а не первый.
так ты сам придумал такую строку ?
array.reverse(uids);
ну так попробуй перевернуть uids
не подключив либу я подсказок не увижу в коде да и зачем она мне, поэтому ты дедаешь сам
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
так ты сам придумал такую строку ?
array.reverse(uids);
ну так попробуй перевернуть uids
не подключив либу я подсказок не увижу в коде да и зачем она мне, поэтому ты дедаешь сам
Да, я же писал, что нашел функцию Array.Reverse(), но она почему-то не сработала, я это и написал. Так же пробовал uids.Reverse(), но это ничего не дает, сообщения те же и в том же порядке.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Да, я же писал, что нашел функцию Array.Reverse(), но она почему-то не сработала, я это и написал. Так же пробовал uids.Reverse(), но это ничего не дает, сообщения те же и в том же порядке.
тебе проще сделать что я предложил, перевернуть полученые письма и всё, и там не так как ты говоришь, если перевернул, то письмо в списке будет первым последнее, одно и то же что ты пытаешься сделать, но для тебя будет заморочка перевенуть uids, иногда не ломай голову себе

я например не пойму для чего ID переворачивать, что изменит, что даст тебе ?
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
тебе проще сделать что я предложил, перевернуть полученые письма и всё, и там не так как ты говоришь, если перевернул, то письмо в списке будет первым последнее, одно и то же что ты пытаешься сделать, но для тебя будет заморочка перевенуть uids, иногда не ломай голову себе

я например не пойму для чего ID переворачивать, что изменит, что даст тебе ?
Без Messages.Reverse(); мы получаем:


C Messages.Reverse(); мы получаем:


Мы просто переворачиваем результат, т.е. мы переворачиваем все те же древние письма которые мне не нужны .
Теперь по поводу UIDS, сейчас мы получаем самые старые письма на почте т.е. с лохматых годов когда почта была зарегистрирована, а мне надо самые новые. Поэтому я и цепляюсь к UIDS, так как в него кладутся ID писем, чтобы его перевернуть и получать не самые старые, а самые новые.
Я извиняюсь, возможно, я не правильно своих мысли излагаю, это мой один из первых опытов работы с C#.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Без Messages.Reverse(); мы получаем:


C Messages.Reverse(); мы получаем:


Мы просто переворачиваем результат, т.е. мы переворачиваем все те же древние письма которые мне не нужны .
Теперь по поводу UIDS, сейчас мы получаем самые старые письма на почте т.е. с лохматых годов когда почта была зарегистрирована, а мне надо самые новые. Поэтому я и цепляюсь к UIDS, так как в него кладутся ID писем, чтобы его перевернуть и получать не самые старые, а самые новые.
Я извиняюсь, возможно, я не правильно своих мысли излагаю, это мой один из первых опытов работы с C#.
честно ни хрена не могу понять, ты получил письма, перевернул, в списке всё как надо, либа по 10 писем чтоль берёт всего ? в чём загвозка ?
ты получаешь +100500 ID а писем всего 10 ?
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
честно ни хрена не могу понять, ты получил письма, перевернул, в списке всё как надо, либа по 10 писем чтоль берёт всего ? в чём загвозка ?
ты получаешь +100500 ID а писем всего 10 ?
Да, зачем мне забирать всю почту, если мне надо последние 10 сообщений которые пришли на почту, это же логично, даже стандартный кубик все не забирает, а забирает указанную часть. Вот и я забираю 10 писем, но забираются самые старые, а надо получить самые новые. Поэтому я и прицепился к этому UIDS.
Еще раз извиняюсь, видимо ввел вас в заблуждения со своими идеями.
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Да, зачем мне забирать всю почту, если мне надо последние 10 сообщений которые пришли на почту, это же логично, даже стандартный кубик все не забирает, а забирает указанную часть. Вот и я забираю 10 писем, но забираются самые старые, а надо получить самые новые. Поэтому я и прицепился к этому UIDS.
Еще раз извиняюсь, видим ввел вас в заблуждения со своими идеями.
при чём тут тогда UIDS
ну и получай дальше письма
у тебя всего 10 ID старых и ты хочешь с этих ID получить новые письма, вот честно не пойму как это можно ?
ну или тогда ищи метод в либе который берёт новые письма
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
618
Благодарностей
339
Баллы
63
при чём тут тогда UIDS
ну и получай дальше письма
у тебя всего 10 ID старых и ты хочешь с этих ID получить новые письма, вот честно не пойму как это можно ?
ну или тогда ищи метод в либе который берёт новые письма
Почему 10? На сколько я понимаю, SearchQuery.All - забирает все ID. И вот исходя из этого я хочу забрать последние 10 ID. А ограничиваю их 10ью уже с помощью IF.
Я не прав в своих суждениях?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
общий код

C#:
public class MailExt
    {
        public static bool DownloadMessages(IZennoPosterProjectModel project, string server, int port, string login, string password, int count)
        {
            using (var client = new ImapClient())
            {
                client.Connect(server, port, SecureSocketOptions.SslOnConnect);
                client.Authenticate(login, password);
               
                var inbox = client.Inbox;
                inbox.Open(FolderAccess.ReadOnly);
               
                for(int i = inbox.Count - 1; i >= inbox.Count - count; i--)
                {
                    var message = inbox.GetMessage (i);
                    project.Lists["SourceList"].Add(message.Subject);
                }
               
                client.Disconnect(true);
            }
            return true;
        }
    }
вызываем

C#:
var server = project.Variables["Server"].Value;
var login = project.Variables["Login"].Value;
var password = project.Variables["Password"].Value;

return MailExt.DownloadMessages(project, server, 993, login, password, 20);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)