Я установил идентификатор электронной почты для своего веб-приложения PHP. Пользователи отправят электронные письма этому идентификатору.
Я хочу обработать эти письма в приложении. Хо, я собираюсь сделать это?
Спасибо заранее.
Я установил идентификатор электронной почты для своего веб-приложения PHP. Пользователи отправят электронные письма этому идентификатору.
Я хочу обработать эти письма в приложении. Хо, я собираюсь сделать это?
Спасибо заранее.
Недавно я работал над проектом, который требовал разбора электронной почты из gmail и обновления базы данных с определенными значениями на основе содержимого электронной почты. Я использовал ezcMail (сейчас) Zeta Components, чтобы подключиться к почтовому серверу и проанализировать электронные письма.
Стратегия, которую я принял, состояла в том, чтобы отфильтровать всю интересную входящую почту с меткой "необработанная". Запустите PHP script через crontab каждые 15 минут. script будет подключаться к почтовому серверу и открывать необработанную папку IMAP и анализировать каждое электронное письмо. После ввода интересных значений в базу данных, script перемещает файлы в другую папку IMAP "Успешно".
Я также нашел IMAP лучше, чем POP для такого рода обработки.
Используйте procmail, если он установлен в вашей системе. Поместите эти строки в файл .procmailrc в домашнем каталоге пользователя, который получает электронное письмо.
:0
| /path/to/your/script.php
Или вы также можете использовать файл .forward, содержащий
"|/path/to/your/script.php"
Procmail имеет то преимущество, что позволяет вам работать с более сложной фильтрацией, если это требует ваше приложение.
Ваш файл script.php будет читать заголовки и тело сообщения электронной почты из stdin.
Недавно я хотел иметь возможность получать электронные письма сразу же в том, что я делал, поэтому я провел некоторое исследование (я тоже на самом деле посмотрел на этот вопрос), и в итоге я обнаружил, что Google App Engine очень полезен. У него есть api, который вы можете использовать для приема и обработки сообщений электронной почты, отправленных на [email protected]
. Я знаю, что это действительно не помогает, потому что вы, вероятно, не хотите, чтобы ваше приложение находилось в App Engine, и вы хотите получать электронные письма на yourdomain.tld, но с небольшой настройкой вы можете получить то, что хотите.
Моя основная настройка такова:
Итак, в основном вы можете создать небольшое приложение GAE, которое работает как переход между захватом электронных писем. Даже при переадресации все будет нормально, письмо будет в порядке.
Также я решил узнать, что у меня есть django, и я сделал бесплатное приложение под названием Emailization, которое в основном сделает это за вас. Вы создаете получателя типа [email protected]
и указываете URL-адрес POST. Все, что отправлено на этот адрес, получает URL-адрес POSTed. Вы можете сделать catchall в своем домене, который перенаправляется к этому получателю электронной почты, и вы также получите электронную почту через catchall!
или вы можете увидеть небольшое приложение GAE Я сделал, что вы можете настроить себя, что делает то же самое.
Надеюсь, что кто-то поможет!
Отъезд fMailbox. Он не требует каких-либо нестандартных расширений (например, imap) и был протестирован с различными серверами, вложениями, многостраничными сообщениями, SSL и т.д.
Я предлагаю использовать компонент Zend_Mail в Zend Framework.
Существует отличная библиотека: Попробуйте следующее: http://code.google.com/p/php-imap
Вам нужно внедрить почтовый клиент в Php. Вероятно, это будет клиент POP.
Этот код будет запрашивать POP-сервер, содержащий вашу электронную почту, загружать его, а затем вы можете анализировать его по мере необходимости.
Быстрый поиск в Google "POP client php" выявил множество различных вариантов. Его трудно сказать, действительно ли существует "Библиотека True True PHP POP", иначе я бы включил ее здесь. Если вы используете существующий фреймворк, вы можете проверить его уровень поддержки POP, иначе проверьте результаты google выше и возьмите свой выбор. Или это может быть проще всего (и большинство образовательных:)), чтобы катиться самостоятельно.
Существует несколько размещенных решений, которые будут принимать электронную почту для вашего домена, а затем размещать ее на веб-сайте script. Большинство из них будут обрабатывать разбор сообщений для вас (разделение вложений, "на", "с" и другие адреса и т.д.).
Вы просто создаете script, который получает сообщение FORM POST и делает все, что вам нужно.
Вы также можете посмотреть Mandrill (по MailChimp), SendGrid и PostMarkApp.
Для этого есть отличный учебник:
http://www.evolt.org/incoming_mail_and_php
в котором описывается, как отправлять электронные письма прямо на ваш script, который ваш script читает через stdin (fopen, fread и т.д.). Код учебника даже делает основной анализ заголовка/тела для вас.
Хостинг решений как Тревис Остин предложил работу хорошо.
Если вы ищете самостоятельную версию, вы можете посмотреть модуль Mailin, позволяющий получать электронные письма, проанализируйте их и опубликуйте их в Интернете по вашему выбору. Он также проверяет dkim и spf, вычисляет оценку spamassassin и определяет язык сообщений.
Я не знаю, соответствует ли это вашим потребностям, так как написано в node.js, но чем больше вариантов у вас есть, тем лучше. (Отказ от ответственности: я сторонник Mailin)
Если вы хотите избежать обращения к POP или IMAP другому серверу, чтобы вытащить электронное письмо, вы можете добавить "крючок" в процесс приема электронной почты на каком-то сервере SMTP, который вы настроили (возможно, на одном и том же php-сервере), Затем просто укажите адрес электронной почты получателя, который будет обрабатываться этим сервером.
Вот пример с postfix, но аналогичные вещи возможны и с sendmail.
http://www.adkap.com/autoresponder.html