Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359

Сборщик почты, частота запросов

23.05.2016, 09:32. Показов 1681. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я написал консольную программку которая проверяет мою почту на наличие НОВЫХ писем. Вопрос : с какой переодичностью рациональнее всего кидать запрос на сервер почты? C какой переодичностью работают "фабричные" программы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2016, 09:32
Ответы с готовыми решениями:

Pop3 сборщик почты, Ssl
в базе Андрея проведено небольшое усовершенствование кода, для работы с SSL http://www.notesnet.ru/library/docid/98C13E

Частота запросов
Читая форум, задался вопросом. Существуют ли какие-то четкие пределы (числовые) по которым можно сказать низкочастотный это запрос или...

Частота запросов в гугле
Искал как узнать частоту запросов в гугле и нашол сервис. Но без пояснений, и половина ссылок на странице неработает :D Но вроде сервис от...

20
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
23.05.2016, 14:01
olexiy86, зависит от того как быстро вы хотите получать обновления. Будите каждую минуту проверять, будите ждать максимум минуту. Думаю сек 30 норм.
1
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 14:43  [ТС]
KEKCoGEN, Я в принципе на такую скорость и расчитывал, минута - нормально.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 14:54
Цитата Сообщение от olexiy86 Посмотреть сообщение
проверяет мою почту на наличие НОВЫХ писем
если не сложно поделитесь каким образом идет проверка?
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 15:18  [ТС]
vxg, Не сложно
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import javax.mail.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
 
/**
 * Created by Alex on 22.05.2016.
 */
 
// Проверка почты yandex
public class MailRetrievalYandex {
 
    public boolean retrive() throws MessagingException, IOException {
        String username = ""; // Сюда прописываем логин до знака @ на пример yana88
        String password = ""; // Пароль
        String host = "imap.yandex.ru";  // Хост
 
        System.out.println("Connecting to the yandex server...");
        Properties properties = System.getProperties();
        Session session = Session.getInstance(properties);
        Store store = session.getStore("imaps"); // Не знаю почему IMAPS а не IMAP
        store.connect(host,  username, password);
        System.out.println("The connection was successful !");
 
 
        Folder folder = store.getFolder("Inbox"); // Просматриваем папку ВХОДЯЩИЕ
        folder.open(Folder.READ_WRITE);  // Можно и читать и удалять
 
 
        Message[] messages = folder.getMessages(); // Все сообщения в массив
        int newMessageCount = folder.getNewMessageCount(); //переменная для того чтоб узнать сколько новых непрочитаных писем
 
        System.out.println("You have " + newMessageCount + " new messages" + " \n" + "Total Messages : " + messages.length );
 
        //Собщать только о новых письмах
        if(newMessageCount > 0) {
            for (int i = 0; i <= newMessageCount; i++) {
                System.out.println(messages[(messages.length - 1) - i].getMessageNumber() + " " + messages[(messages.length - 1) - i].getSubject());
            }
        }else{
            System.out.println("You have not new messages");
        }
 
        return true;
        }
    }
Необходимо добавить библиотеки javax.Mail.
1
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 15:21
olexiy86, этот код получает все содержимого вашего ящика и выдает только те письма которые помечены как не прочтенные я верно понял? что будет если писем в ящике реально много?
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 15:24  [ТС]
vxg, Да ничего не будет, у меня что 157 писем было, что 27 осталось скорость проверки не меняется, другое дело если я хочу чтоб программа вывела все письма из массива - это реально долго, поэтому я оставил только непрочитаные.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 15:32
Цитата Сообщение от olexiy86 Посмотреть сообщение
Да ничего не будет
я в том смысле что если у вас 300к писем)

Добавлено через 2 минуты
olexiy86, может лучше посмотреть в сторону search с критерием NEW не знаю правда есть ли такой метод в том пакете
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 15:45  [ТС]
vxg, 300k Ну не знаю... search есть, new нету. Тогда можно просто узнать есть ли новые письма не заморачиваясь с массивом, и сделать переход на почту для просмотра, а то 300к.. Компьютер только и будет что почту проверять
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
23.05.2016, 15:52
Это она будет каждую минуту пищать, пока все сообщения не прочтешь?
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 16:04
Цитата Сообщение от olexiy86 Посмотреть сообщение
new нету
может так
Java
1
2
3
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
Message messages[] = inbox.search(unseenFlagTerm);
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 16:27  [ТС]
vxg, В массив попадают все входящие письма(прочитаные и не прочитаные).

Добавлено через 57 секунд
Любопытный, У меня программа просто отображает информацию есть новые письма или нет. Пищать никто не будет.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 16:27
Цитата Сообщение от olexiy86 Посмотреть сообщение
В массив попадают все входящие письма(прочитаные и не прочитаные).
в смысле? поиск по флагу непросмотренные в ящике возвращает все подряд?
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 16:32  [ТС]
vxg, НЕ так выразился, в массив кидает только непросмотренные. Но лично мне нужны только НОВЫЕ письма, мой вариант программы отсеивает непросмотреные, и показывает только новые.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 16:38
Цитата Сообщение от olexiy86 Посмотреть сообщение
показывает только новые
хм
Java
1
Flags.Flag.RECENT
?
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 16:45  [ТС]
vxg, Так в массив попадают все входящие.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 16:46
Цитата Сообщение от olexiy86 Посмотреть сообщение
Так в массив попадают все входящие
я имею ввиду
Java
1
2
3
Flags f = new Flags(Flags.Flag.RECENT);
FlagTerm fTerm = new FlagTerm(f, true);
Message messages[] = inbox.search(fTerm);
1
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 16:59  [ТС]
vxg,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import javax.mail.*;
import javax.mail.search.FlagTerm;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
 
/**
 * Created by Alex on 22.05.2016.
 */
 
// Проверка почты yandex
public class MailRetrievalYandex {
 
    public boolean retrive() throws MessagingException, IOException {
        String username = ""; // Сюда прописываем логин до знака @ на пример yana88
        String password = ""; // Пароль
        String host = "imap.yandex.ru";  // Хост
 
        System.out.println("Connecting to the yandex server...");
        Properties properties = System.getProperties();
        Session session = Session.getInstance(properties);
        Store store = session.getStore("imaps"); // Не знаю почему IMAPS а не IMAP
        store.connect(host,  username, password);
        System.out.println("The connection was successful !");
 
 
        Folder folder = store.getFolder("Inbox"); // Просматриваем папку ВХОДЯЩИЕ
        folder.open(Folder.READ_WRITE);  // Можно и читать и удалять
 
        Flags seen = new Flags(Flags.Flag.FLAGGED);
        FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
        Message[] messages = folder.search(unseenFlagTerm); // Все сообщения в массив
 
        int newMessageCount = folder.getNewMessageCount(); //переменная для того чтоб узнать сколько новых непрочитаных писем
 
        System.out.println("You have " + newMessageCount + " new messages" + " \n" + "Total Messages : " + messages.length );
 
        //Собщать только о новых письмах
        //Цикл reverse для тогот чтоб выводить письма в правильном порядке
//        if(newMessageCount > 0) {
//            for (int i = 0; i <= newMessageCount; i++) {
//                System.out.println(messages[(messages.length - 1) - i].getMessageNumber() + " " + messages[(messages.length - 1) - i].getSubject());
//            }
//        }else{
//            System.out.println("You have not new messages");
//        }
 
        for(Message message : messages){
            System.out.println(message.getMessageNumber() + " " + message.getSubject());
        }
 
        return true;
        }
    }
Добавлено через 3 минуты
vxg, Получилось
У меня стояло false, а c true в массив только новые))

Добавлено через 5 минут
vxg, Итого :
Java
1
2
3
        Flags seen = new Flags(Flags.Flag.RECENT);
        FlagTerm unseenFlagTerm = new FlagTerm(seen, true);
        Message[] messages = folder.search(unseenFlagTerm);
В массив попадают только НОВЫЕ сообщения, непрочитаные и прочитаные не попадают. Теперь можно хранить 300к писем в ящике и не париться
1
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
23.05.2016, 17:06
olexiy86, в философском плане интересно - транслирует ли пакет заданный флаг в критерий поиска или просто пропускает через фильтр все сообщения? Не знаете случайно?
0
 Аватар для olexiy86
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
23.05.2016, 17:09  [ТС]
vxg, МОЯ ТВОЯ НЕ ПОНИМАЕТ Но нужно будет разобратся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2016, 17:09
Помогаю со студенческими работами здесь

Падает частота посиковых запросов и клики
За последний месяц мой бложек полз вверх по количеству запросов и кликов , и вот щас смотрю граффик - он стремится в низ : Это значит...

Через HyperTerminal доступна частота COM порта 921600, но в приложении максимальная частота гораздо меньше
Через HyperTerminal доступна частота COM порта 921600, но когда я пишу на C++ максимальная частота гораздо меньше. Кто знает, как на с++...

Частота шины памяти и эффективная частота
При покупке модулей памяти возник вопрос. Какая частота шины памяти? В описании модуля написано Частота работы 133 Мгц и с низу...

Критично ли, если частота шины мамки меньше, чем частота шины проца?
у проца 5.2ГГц а у мамки 4.8 ГТ/с хотя я так понял еденицы измерения тут разные но все же будет ли заметна разница?

Сборщик мусора
Здравствуйте, есть такая проблема. Идет работа с прибором, который в реальном времени шлет данные, каждые 5мс программа обязана их считать,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru