Подтвердить что ты не робот

Как получить электронную почту и обработать ее в веб-приложении

Я установил идентификатор электронной почты для своего веб-приложения PHP. Пользователи отправят электронные письма этому идентификатору.

Я хочу обработать эти письма в приложении. Хо, я собираюсь сделать это?

Спасибо заранее.

4b9b3361

Ответ 1

Недавно я работал над проектом, который требовал разбора электронной почты из gmail и обновления базы данных с определенными значениями на основе содержимого электронной почты. Я использовал ezcMail (сейчас) Zeta Components, чтобы подключиться к почтовому серверу и проанализировать электронные письма.

Стратегия, которую я принял, состояла в том, чтобы отфильтровать всю интересную входящую почту с меткой "необработанная". Запустите PHP script через crontab каждые 15 минут. script будет подключаться к почтовому серверу и открывать необработанную папку IMAP и анализировать каждое электронное письмо. После ввода интересных значений в базу данных, script перемещает файлы в другую папку IMAP "Успешно".

Я также нашел IMAP лучше, чем POP для такого рода обработки.

Ответ 2

Используйте procmail, если он установлен в вашей системе. Поместите эти строки в файл .procmailrc в домашнем каталоге пользователя, который получает электронное письмо.

:0
| /path/to/your/script.php

Или вы также можете использовать файл .forward, содержащий

"|/path/to/your/script.php"

Procmail имеет то преимущество, что позволяет вам работать с более сложной фильтрацией, если это требует ваше приложение.

Ваш файл script.php будет читать заголовки и тело сообщения электронной почты из stdin.

Ответ 3

Недавно я хотел иметь возможность получать электронные письма сразу же в том, что я делал, поэтому я провел некоторое исследование (я тоже на самом деле посмотрел на этот вопрос), и в итоге я обнаружил, что Google App Engine очень полезен. У него есть api, который вы можете использовать для приема и обработки сообщений электронной почты, отправленных на [email protected]. Я знаю, что это действительно не помогает, потому что вы, вероятно, не хотите, чтобы ваше приложение находилось в App Engine, и вы хотите получать электронные письма на yourdomain.tld, но с небольшой настройкой вы можете получить то, что хотите.

Моя основная настройка такова:

  • Пользователь отправляет письмо по адресу [email protected](адрес электронной почты, который фактически не существует)
  • mydomain.tld имеет полный адрес электронной почты, который пересылает [email protected]
  • GAEapp (крошечное приложение в приложении) получает электронное письмо, обрабатывает его и отправляет почтовый запрос с соответствующими материалами в mydomain.tld

Итак, в основном вы можете создать небольшое приложение GAE, которое работает как переход между захватом электронных писем. Даже при переадресации все будет нормально, письмо будет в порядке.

Также я решил узнать, что у меня есть django, и я сделал бесплатное приложение под названием Emailization, которое в основном сделает это за вас. Вы создаете получателя типа [email protected] и указываете URL-адрес POST. Все, что отправлено на этот адрес, получает URL-адрес POSTed. Вы можете сделать catchall в своем домене, который перенаправляется к этому получателю электронной почты, и вы также получите электронную почту через catchall!

или вы можете увидеть небольшое приложение GAE Я сделал, что вы можете настроить себя, что делает то же самое.

Надеюсь, что кто-то поможет!

Ответ 4

Отъезд fMailbox. Он не требует каких-либо нестандартных расширений (например, imap) и был протестирован с различными серверами, вложениями, многостраничными сообщениями, SSL и т.д.

Ответ 5

Я предлагаю использовать компонент Zend_Mail в Zend Framework.

Ответ 7

Вам нужно внедрить почтовый клиент в Php. Вероятно, это будет клиент POP.

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

Быстрый поиск в Google "POP client php" выявил множество различных вариантов. Его трудно сказать, действительно ли существует "Библиотека True True PHP POP", иначе я бы включил ее здесь. Если вы используете существующий фреймворк, вы можете проверить его уровень поддержки POP, иначе проверьте результаты google выше и возьмите свой выбор. Или это может быть проще всего (и большинство образовательных:)), чтобы катиться самостоятельно.

Ответ 8

Существует несколько размещенных решений, которые будут принимать электронную почту для вашего домена, а затем размещать ее на веб-сайте script. Большинство из них будут обрабатывать разбор сообщений для вас (разделение вложений, "на", "с" и другие адреса и т.д.).

Вы просто создаете script, который получает сообщение FORM POST и делает все, что вам нужно.

Вы также можете посмотреть Mandrill (по MailChimp), SendGrid и PostMarkApp.

Ответ 9

Для этого есть отличный учебник:

http://www.evolt.org/incoming_mail_and_php

в котором описывается, как отправлять электронные письма прямо на ваш script, который ваш script читает через stdin (fopen, fread и т.д.). Код учебника даже делает основной анализ заголовка/тела для вас.

Ответ 10

Хостинг решений как Тревис Остин предложил работу хорошо.

Если вы ищете самостоятельную версию, вы можете посмотреть модуль Mailin, позволяющий получать электронные письма, проанализируйте их и опубликуйте их в Интернете по вашему выбору. Он также проверяет dkim и spf, вычисляет оценку spamassassin и определяет язык сообщений.

Я не знаю, соответствует ли это вашим потребностям, так как написано в node.js, но чем больше вариантов у вас есть, тем лучше. (Отказ от ответственности: я сторонник Mailin) ​​

Ответ 11

Если вы хотите избежать обращения к POP или IMAP другому серверу, чтобы вытащить электронное письмо, вы можете добавить "крючок" в процесс приема электронной почты на каком-то сервере SMTP, который вы настроили (возможно, на одном и том же php-сервере), Затем просто укажите адрес электронной почты получателя, который будет обрабатываться этим сервером.

Вот пример с postfix, но аналогичные вещи возможны и с sendmail.
http://www.adkap.com/autoresponder.html