Как настроить сборщика писем

Собираем все письма с разных ящиков в один

Наверное, только единицы не сталкивались с проблемой, что их электронный адрес перестал им нравиться или просто не нужен. Но что, если с ящиком связано большое количество контактов, терять которые бы не хотелось.

Первое решение, которое может прийти в голову — создать новый красивый адрес и при этом постоянно проверять второй. Это сложно. В этом случае мы начинаем создавать еще больше ящиков и путаться с большим количеством адресов.

Здесь много неудобств: есть риск забыть пароль, продолжает раздражать адрес klubnichkapupsik1234@, когда ты — директор серьёзной компании, да и много еще чего!

Решение есть и оно очень простое. И удобное.

Когда вы создали ящик с идеальным адресом, подключите сбор писем со старой почты. Все письма с подключенных ящиков вы найдете внутри основной почты в одноименных папках. Все аккуратно, понятно и упорядочено.

Сборщик экономит время на переключение с ящика на ящик и позволяет полностью перейти на новый адрес без страха, что кто-то останется без ответа.

Как настроить?

Опять же. Все очень просто. Рассказываем:

  1. Зайдите в настройки вашего почтового ящика;
  2. Выберите раздел «Почта из других ящиков»;
  3. Введите электронный адрес и пароль от ящика, с которого хотите собирать письма.

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

В этом разделе вы можете легко управлять сборщиком: приостанавливать работу, удалять или добавлять дополнительные ящики. Собранные письма будут храниться в отдельной папке с внутренними подпапками, созданными вами в старом ящике.

Полезный совет!

Кстати, если вы твердо решили пользоваться новым красивым адресом, но вам лень уведомлять каждого, кто все еще пишет на старую почту, настройте правила фильтрации с автоматическим ответом с нового адреса.

Для этого настройте фильтр и в графе «Если письма кому» укажите ваш старый адрес. Выберите действие «Отвечать сообщением». Если вы в сообщении укажете адрес нового ящика, то все, кто будет писать на старую почту, получат ответ и не потеряют ваши контакты.

Источник

Настройка сборщика почты в яндексе

Шаг 1

Для того, чтобы настроить сбор почты со стороннего почтового ящика требуется зайти в почтовый ящик, в котором будет настроен сборщик. Далее кликните по кнопке «Настройка» (находится в верхнем правом углу).

Шаг 2

В открывшей странице кликните по кнопке «Сбор почты с другого ящика» .

Шаг 3

В открывшейся странице требуется заполнить поля для настройки сбора почты.
Пункт «Забирать почту из ящика»
В поле «E-mail» введите полностью имя почтового ящика, с которого будет забираться письма, в поле «Пароль» соответствующий пароль для этого ящика.
Пункт «параметры вашего почтового сервера»
в поле «логин» введите тоже значение, что и в поле «E-mail», то есть имя почтового ящика,
в поле «Сервер» введите pop3.megagroup.ru (в случае, если почтовый ящик располагается на почтовом сервере Megagroup.ru),
в поле «Порт» введите значение 110.
Далее кликните по кнопке «Включить сборщик».

Обратите внимание, регистр символов очень важен! Поэтому адрес электронной почты, нужно вводить маленькими буквами. Особенно важно соблюдать регистр, при вводе пароля. Если в пароле, (например: a8sH3mH0f) имеются большие буквы, то написание маленькими буквами (например: a8sh3mh0f) недопустимо!

Шаг 4

Если все значение введены верно, то откроется страница, на которой Вы можете настроить параметры сбора. Данные параметры настраиваются индивидуально, как Вам удобнее. После этого кликните на кнопку «Сохранить изменения» .

Шаг 5

После этого у Вас должна открыться страница, на которой будет отображаться подключенный почтовый ящик.

Источник

Читайте также:  Привел домой не работает

Сборщик почты (делаем простые вещи сложно)

В качестве предисловия

Наверное, многие из вас в своей практике сталкивались с задачей сбора почты с ряда ящиков. Зачем это может быть нужно? Наверное, потому что это универсальный механизм обмена данными между системами. Множество библиотек под любые языки, реализующих SMTP, POP3, IMAP, готовые решения по реализации стэка сообщений (как я сложно назвал почтовый ящик. ) и т.д.

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

Кому достаточно приведенного ниже кода — дальше могут не читать:

Что будем делать

Сразу сделаем ряд допущений:
1) Собирать почту нужно для нескольких систем. Может в будущем ещё для нескольких. И ещё… В общем решение должно быть универсальное;
2) Почты возможно будет много — следует из пункта 1 (а иначе я бы не писал этот пост);
3) Почту придется парсить;
4) Все ящики сервисные — пользователи туда не лезут.

Что будем использовать

Система должна работать 24/7, поэтому реализуем её в виде Windows Service. Для этих целей предлагаю сразу использовать TopShelf.

Разумеется, всё должно быть распараллелено. Тут на сцену выходит моя любимая библиотека TPL DataFlow.

Забирать почту будем по POP3. Все «модные штучки» IMAP в данной задаче излишни — надо как можно быстрее и проще забрать исходник письма и удалить его на сервера. POP3 тут хватит за глаза. Используем OpenPop.NET.

Как уже говорилось, почту будем парсить. Может через Regex, может кастомные логики… мало ли что. Именно поэтому нужно гибко и быстро подпихивать новые правила с помощью плагинов. Тут нам поможет Managed Extensibility Framework.

Логи пишем через NLog.

В качестве факультатива прикрутим мониторинг в Zabbix. (Мы же собрались работать 24/7 и выдавать хваленую скорость — нужно следить за этим).

Поехали

Создаем обычное консольное приложение. Открываем NuGet консоль и ставим все нужные пакеты:

Переходим в папку проекта, создаем App.Debug.config и App.Release.config. Выгружаем проект из студии, открываем его код (Здесь и далее TopCrawler.csproj). В секцию с конфигом добавляем:

А ниже собственный таргет для MSBuild:

Лично я привык именно таким способом — по старинке — добавлять трансформацию конфигов для разделения сред.
Для удобства предлагаю strongly-type конфиги. Отдельный класс будет читать конфигурацию. (О теоретических аспектах такого решения можно пообщаться в комментах). Конфиги, логи, мониторинг — отличный повод реализовать паттерн Singleton.

Создаем в проекте одноименную папку (должен же быть порядок). Внутри создаем 3 класса — Config, Logger, Zabbix. Наш логгер:

Мониторинг с помощью Zabbix заслуживает отдельного поста, поэтому я просто оставлю тут класс, реализующий агента:

Конфиги… Пора уже делать хоть что-то интересное. Во-первых, в конфигах будем хранить ящики, которые мы опрашиваем. Во вторых настройки DataFlow. Предлагаю так:

Итак, хост и порт куда конектится, юзер и пароль — тут всё понятно. Дальше тип ящика. Допустим, служба используется маркетингом (как и другими отделами). У них есть ящики, куда сваливаются автоответы на рассылки, а также отчеты о спаме FBL. Сам ящик уже категоризирует письмо, поэтому для таких ситуаций сразу задаем тип ящика. С настройками DataFlow будет понятно дальше, когда начнем создавать объекты. Тут у нас будут собственные секции в конфиге. Мануалов куча как это сделать, поэтому просто покажу результат:

Полную реализацию конфига писать не буду, подразумевается, что в процессе разработки туда будут добавляться нужные нам параметры.

Наши кастомные настройки прочитаем так:

Как-то очень затянуто получается, а мы даже не дошли до самого интересного.

Опустим пока обвязку из TopShelf, счетчики производительности, общение с БД и перейдем к делу! Создаем класс Crawler — ядро. Для начала читаем почту:

Вот тут лень взяла свое и я решил не заморачиваться — если ящиков порядка 20-30 можно под каждый запустить таск и не париться о количестве потоков. (Разрешаю закидать помидорами.)

Читайте также:  Как копить деньги если не работаешь

Переходим к самому чтению:

Сразу посчитаем тайминги доступа к ящику — пригодится для диагностики сети и загруженности сервера.

Отправляем данные в Zabbix. Всё просто — указываем имя хоста (как оно заведено в Zabbix), ключ (опять таки строго, как в Zabbix) и строковое значение.

DataFlow pipeline будет создана при создании класса Crawler. Считаем, что наш первый этап — отсортировать письмо.

Видите, как просто — сам конвейер один. Все таски, читающие почту, кидают туда сообщения по одному. Если блок занят, Post вернет false и мы просто подождем пока он не освободится. Текущий потом в это время продолжает работать. Вот это я называю параллелизм без забот.

Сообщение ушло на конвейер, теперь его можно со спокойной душой сохранить в RAW архив (да-да! всё, что читаем — сохраняем в файловый архив. Служба поддержки нам потом скажет спасибо).

Настроим, например, ротацию архива:

Потом на него можно натравить logStash, но это уже другая история…

Здесь мы использовали статические счетчики ошибок (в разрезе типов ящиков), где ErrorsCounters — это:

А сами счетчики можно сделать так:

Перейдем к созданию конвейера. Допустим, у нас есть ящики, куда сыпятся автоответы. Такие письма надо распарсить (что за автоответ, от кого, по какой рассылке и т.д.) и сложить результат в хранилище (БД). Допустим, есть ящики, куда падают FBL отчеты. Такие письма сразу складываем в базу. Все прочие письма считаем «полезными» — их надо проверить на спам и отправить во внешнюю систему, например, CRM.

Как вы уже поняли, данный пример в основном рассматривает применение сборщика для задач маркетинга — сбор статистики по доставке почты, информация о спаме.

Итак, мы определились с рабочим потоком. Объявляем необходимые блоки в классе Crawler:

Создаем метод инициализации и создаем блоки конвейера (для инициализации блоков используем наши замечательные секции из конфигов):

Собираем конвейер в соответствии с нашей схемой:

Как видим, всё предельно просто — связываем блок со следующим (с возможностью задания условия связи). Все блоки исполняются параллельно. Каждый блок имеет степень параллелизма и емкость (с помощью емкости можно регулировать очередь перед блоком, то есть блок сообщение принял, но еще не обрабатывает). Таким образом, можно задавать высокую степень параллелизма для «сложных» и долгих операций, как, например, парсинг содержимого письма.

Не буду описывать матчасть DataFlow, лучше всё прочесть в первоисточнике TPL DataFlow.

Далее задаем правила выхода из блока:

Всё, на самом деле конвейер уже работает, можно постить в него сообщения. Осталось только остановить его дополнив наш метод Start:

Переходим к делегатам.
Сортировка… Ну, допустим у нас всё просто (усложнить то всегда успеем):

Спам фильтр. Это на домашнюю работу — используйте SpamAssassin.
Вот вам делегат:

И классы для работы с API SpamAssassin (ссылка на проект).
А мы переходим к парсингу писем. Парсим мы автоответы. Тут вступает в дело MEF.
Создаем проект (dll) с интерфейсами для наших плагинов (Назовем Interfaces).
Добавляем интерфейс:

И… всё. Наш TopCrawler зависит от этого проекта и проект с плагинами тоже будет использовать его.
Создаем новый проект (тоже dll), назовем Conditions.
Добавим типы автоответов:

И классы, реализующие наш интерфейс:

Как вы заметилиб всё дело в атрибутах. С помощью них плагины и будут загружены.
Возвращаемся к нашему проекту и загружаем плагины:

LoadPlugins дергаем в конструкторе нашего класса. Объяснять подробно про механизм загрузки не буду — гугл справится лучше.

Переходим к нашему делегату проверки типа Bounce. Условия будут применяться по очереди, пока не сработает первое — исключающий метод:

Таким образомб если появляется новая логикаб достаточно просто добавить в проект с плагинами новый класс, реализующий наш интерфейс и — вуаля! Пример второго плагина по определению отправителя письма прикладывать не буду — итак уже длинный пост (Автоответ сгенерировал сам сервер, поэтому отправителя тоже надо распарсить из заголовков письма).

Читайте также:  Не работают электрозеркала мазда 3

С записью результатов в БД тоже ничего необычного. Например, так:

Простите, что не успел показать TopShelf — пост и так уже слишком раздулся.

Выводы

В этом уроке мы узнали, что задача сбора почты может оказаться не такой простой. Разработанное ядро позволяет быстро добавлять новые шаги процесса — DataFlow-блоки, не затрагивая существующую логику. Подсистема плагинов позволяет быстро наращивать скриптоподобную логику парсинга, а сам DataFlow распараллеливает все вычисления (причем мы имеем возможность гибко настраивать многопоточность под конкретную машину). TopShelf дает нам возможность запускать сервис как в режиме службы, так и в консольном режиме для облегчения отладки.

Фух… Если будет интересно, дальше расскажу, как поставить это на рельсы Continious Integration, настроить автобилды и выпуск релиза через VS Release Management.

Источник

Сборщик почты

Модуль «Сборщик почты» предназначен для управления почтовыми аккаунтами, расположенными на других почтовых серверах. Для открытия модуля перейдите в меню Почта > Сборщик почты.

На странице модуля отображаются сведения о сборщике почты:

  • статус службы ( запущен , остановлен , выключен , не настроен );
  • кнопка «Включить» («Выключить») — позволяет запустить или остановить службу;
  • настроенные сборщики почты;
  • функциональные кнопки для действий со сборщиками почты: добавить, удалить, выключить, редактировать, очистить, собрать.

Добавить сборщик почты

Чтобы добавить сборщик почты, выполните следующие действия:

  1. Нажмите «Добавить».
  2. Введите название сборщика почты.
  3. Укажите настройки подключения к внешнему почтовому серверу:
    • сервер — IP-адрес или доменное имя сервера, с которого будет происходить сбор почты;
    • тип сервера — POP3 или IMAP ;
    • флаг «Использовать SSL » — установите, если требуется использование шифрованного соединения;
    • логин и пароль — данные для входа на удаленный почтовый ящик, с которого будет осуществляться сбор почты.

Выберите режим работы сборщика:

    Автоматически определять получателя — предполагает автоматическое распределение писем по почтовым ящикам в зависимости от того, на какую ссылку они пришли.

Внешний почтовый домен (например, @почта.рф ), где расположен почтовый ящик (например, пример@почта.рф ), с которого собираются почтовые сообщения, имеет ряд ссылок на себя (например, раз@почта.рф , два@почта.рф , три@почта.рф ). А на почтовом сервере ИКС располагается домен (например, @икс.рф ) и заведены почтовые ящики ( раз@икс.рф , два@икс.рф и три@икс.рф ).

Тогда сборщик почты ИКС, работающий в режиме «Автоматически определять получателя», будет собирать почтовые сообщения с пример@почта.рф и автоматически распределять письма на раз@икс.рф , два@икс.рф и три@икс.рф в зависимости от того, на какую ссылку они пришли ( раз@почта.рф , два@почта.рф и три@почта.рф соответственно). Если в необязательном поле указан почтовый ящик по умолчанию, сборщик почты будет туда помещать почтовые сообщения, для которых он не смог автоматически определить получателя.

  • Пересылать на — предполагает указание одного почтового ящика, куда будет производиться сборка почтовых сообщений с внешнего почтового ящика.
  • Выберите, как будет производиться сборка почтовых сообщений:
    • все сообщения, удалять сообщения с сервера;
    • только не собранные ранее сообщения, удалять сообщения с сервера;
    • только не собранные ранее сообщения, оставлять сообщения на сервере.
  • Если требуется, измените интервал между обращениями к удаленному почтовому серверу для сбора почтовых сообщений. По умолчанию установлен интервал каждые пять минут. Минимальное значение — каждые пять секунд, максимальное значение — раз в сутки.
  • В поле «Собирать не более, писем за сессию» можно изменить максимальное количество почтовых сообщений, собираемых за одну сессию. По умолчанию установлено 100 почтовых сообщений.
  • Нажмите «Добавить» — новый сборщик почты появится в списке.
  • Очистить сборщик почты

    Для удаления информации о собранных ранее письмах нажмите кнопку «Очистить», а затем — «Ок» в окне подтверждения действия. Данные удалятся, и при очередной сборке будут получены более ранние письма. Такая операция полезна, например, при необходимости заново получить уже собранные письма.

    Принудительная сборка писем

    Для принудительной сборки писем нажмите кнопку «Собрать», а затем — «Ок» в окне подтверждения действия. Система произведет внеочередную попытку сборки писем в соответствии с настройками созданных сборщиков.

    Источник

    Оцените статью