файл вложения автохранилища электронной почты - PullRequest
0 голосов
/ 28 сентября 2011

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

Дело в том, чтобы наши пользователи отправляли XML с некоторыми данными по электронной почте, но мой босс хочет

  1. чтобы прикрепленный файл хранился в определенной папке на определенном сервере всякий раз, когда приходит новое электронное письмо с вложением
  2. . Процесс будет проверять наличие вложенного файла вэлектронная почта, и это правильно, это означает, что ее структура XML такая, как мы ее просили, и в ней хранятся все данные
  3. Некоторые данные файла XML хранятся в базе данных (имя файла, путь к файлу, основной идентификатор)чтобы его можно было найти в небольшом приложении, которое отображает данные XML и, таким образом, может загрузить копию файла

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

Любой может датьу меня есть идея, с чего начать?

Я предложил, чтобы у нас была опция загрузки на нашей главной веб-странице, и она у нас будет, но им действительно нужна опция электронной почты и что весь процесс автоматизирован

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

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

:0B
* ^Content-type: application/x-perimental-xml or what have you
| validate-and-store-and-extract-some-data-to-sql

Вы, безусловно, можете сделать этоболее сложный, чем этот (и, скорее всего, вам придется), но этот важный рецепт не очень сложен.

... Ваша «почти невозможная» характеристика звучит так, как будто вы работаете в Windows (ой, извините, не смогне сопротивляйтесь) но, тем не менее, возможно, ваш почтовый сервер является сервером Unix.

0 голосов
/ 29 сентября 2011

Есть несколько способов сделать это.Я бы начал с изучения программного получения сообщений через IMAP или POP.Это похоже на подход с наименьшим количеством трения для вас.Ответственный за ваш почтовый сервер может просто настроить вам учетную запись, в которую будут пересылаться все сообщения.

В качестве альтернативы вы можете написать что-нибудь, чтобы переслать все электронные письма на другой почтовый сервер, и использовать его для передачиотправляет сообщения электронной почты в сценарий или пересылает его в службу типа cloudmailin.com (которая также может отправлять вложения на S3), чтобы вы могли получать сообщение программно.

Как только вы получитеЗатем вам нужно просто разобрать вложение и скопировать его в нужную папку.

...