Автоматическое сохранение вложений из почты [Решено]?

Есть:

— почтовый сервер с доступом к нему по POP3

— виндовый сервер(Windows 2003).


Необходимо, чтобы

— виндовый сервер раз в N времени ходил по pop3 к серверу, забирал новые письма, сохранял вложения из этих писем в нужную нам папку(сам текст письма не нужен).

— это осуществлялось не с помощью Outlook или другого полноценного клиента. Для этой задачи смысла держать постоянно открытым почтовик не вижу. Идеальный вариант — скрипт на powershell

— письма на сервере, желательно, оставались непрочитанными, потому что их будет обрабатывать еще одна софтинка.


PS Гуглил. Гугл выдает миллиарды вариантов по автоматизации этого процесса в аутлуке, что не очень хорошо.
  • Вопрос задан
  • 23484 просмотра
Решения вопроса 1
alex_dredd
@alex_dredd Автор вопроса
Решение найдено. Конечно, не совсем то, что хотелось, но все же.
www.gearmage.com/maildownloader.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
ayc
@ayc
В Eserv'е v4 (почтовый сервер для Windows) есть такие средства — там PopPull для сбора почты и встроенный скрипт для извлечения вложений, был готовый пример на форуме. Если установка целого сервера для такой задачи — это слишком жирно, то можно из комплекта старого Eserv v2 взять программку pop3recv.exe (консольный агент сбора почты) и Erobot или MContent (это всё из Eserv'а тоже) для расковыривания полученных писем. Они все консольные, поэтому легко вызываются из шелл-скриптов и планировшиков. Если что-то не выходит — пишите на Eserv'ный форум, там помогут обязательно.
Ответ написан
Комментировать
t_q_l
@t_q_l
Интересная личность
Товарищи, за 2 года что-то поменялось? Не появилось других решений?
Ответ написан
Комментировать
Hootie
@Hootie
Использовал для этих целей Thunderbird + дополнение AttachmentExtractor
Ответ написан
Комментировать
@sandyanf
Есть решение на PowerShell. Подробная документация с примерами здесь: https://deaksoftware.com.au/articles/using_pop3_in...
Библиотеку скачиваем тут: OpenPop.dll

Проверял, работает на 2003 сервере.
Ответ написан
Комментировать
@Sykoku
Решение с OpenPop рабочее, но есть ряд нюансов:
1. При извлечении письма/вложений не учитывается часовой пояс
2. Для его извлечения из состояния сервера необходим PowerShell 5.1 или выше
3. Письма просматриваются в обратном порядке (LIFO - сперва более новые)
4. Через некоторое время абсолютно по непонятной причине стала выпадать ошибка директивы contentStream.copyTo. Пришлось сменить ее на contentStream.WriteTo. Ошибка повторялась через несколько дней или возникала сразу же на вариациях Win 7x32, Win 7x64, Win 10x64. Единственно - все машины работали под Hyper-V.

Особенности.
Стандартный PowerShell Win7 - 2.0. При подгрузке OpenPop (а задача запланирована с интервалом в 5 минут) вся библиотека выводилась на экран в 16-м виде. После перехода на 5.1 эти чудеса прошли, зато появились другие. Например, имя передаваемого файла в cmd-файл передается в нормальном виде, но при попытке его запуска или записи в файл (стандартный поток, >>) получаем лишние кавычки-терминаторы и непонятную кодировку.

В моем случае была еще установлена база MySQL и вложения после извлечения, распаковки и конвертации для просмотра в WEB заносились в нее. Единственный заработавший сразу драйвер был v2.

Размер чистой системы после установки всех пакетов (WAMP, DocTo, GhostScript, M$ Word, M$ Excel, sK1 Project Uniconvertor) :
Win 7x32 - 8 ГБ, Win 7x64 - 20 ГБ, Win 10x32 - 40 ГБ

Была попытка запуска системы на Ubuntu 16, но не взлетело.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы