есть библиотека / класс / код-фрагмент / etc. что позволяет мне напрямую получать почту в php?
Так что мне не нужно запускать дополнительный сегмент в другом процессе, а затем нужно как-то отправить почту на уже запущенный php-процесс.
Я искал вокруг какое-то время, но результаты для «php» и «mail» или «mta» / «smtp» в Google сосредоточены в основном на отправке почты или получении ее с помощью pop3 или imap …
[РЕДАКТИРОВАТЬ]
То, что я пытаюсь сделать, это перенаправить сообщения на IRC-канал, поэтому, очевидно, что когда IRC-бот (в PHP) не работает, потеря почты не является большой проблемой. Однако с низкой задержкой между получением почты и размещением ее на IRC.
Написание собственного SMTP-сервера для работы в качестве MTA – большое дело. Вы можете взглянуть на http://cloudmailin.com . CloudMailin позволяет получать входящую электронную почту в качестве HTTP-сообщения и действует как MTA, отправляя электронное письмо прямо в ваше приложение PHP. Затем приложение PHP может обрабатывать электронную почту и отправлять ее на IRC-канал.
Я никогда не видел конкурирующего SMTP-сервера в PHP, и это меня не удивляет. Я не думаю, что ты хочешь пойти по этому маршруту. Я могу представить себе два других способа сделать это:
Используйте procmail (или аналогичный) с вашим существующим SMTP-сервером и создайте правило, которое пересылает сообщения на ваш PHP-скрипт. Довольно просто сделать, и он сгорит сценарий в тот момент, когда сообщение будет получено.
Передайте сообщения в какой-либо существующий почтовый ящик, а затем ваш PHP-скрипт постоянно проводит опрос (через POP или IMAP) для новых сообщений. Когда вы увидите новое сообщение, перейдите в IRC и удалите его. Как долго это сообщение появляется, зависит от того, как часто вы проводите опрос в папке «Входящие».
Написание собственного SMTP-сервера – огромная задача. НЕ ПРОХОДИТЕ этот маршрут. Вы потратите огромное количество времени на повторение работы, которая уже была выполнена. Выберите один из «больших» SMTP-серверов (postfix, exim, sendmail и т. Д.) И пойдите с этим.
Не думайте, что просто настройка маленького скрипта для прослушивания порта 25 сделает трюк. SMTP-серверы являются невероятно сложными животными, а механика настройки этого гнезда порта 25 занимает менее 0,000000000000000000000000000000000000001% работы. (это число абсолютно верно, я спросил, что я чувствую, и вот что получилось).
Попробуйте следующее: http://www.php.net/manual/en/refs.remote.mail.php
10 секунд googling. SMTP предназначен для почтового ретранслятора, хотя это протокол дефакто для почтовых клиентов для отправки почты из-за наследия Unix каждого окна, использующего SMTP-mail-реле.
POP3 и IMAP обеспечивают доступ почтовых клиентов к почте.
MTA (агент транспорта почты) – это приложение (т.е. sendmail, exim), которое используется для перемещения почты из местоположения в местоположение. Насколько мне известно, MTA не кодируется в PHP. PHP предлагает классы и скрипты, которые будут обрабатывать почтовый транспорт, но он все еще обрабатывается через существующий MTA.
Вы должны иметь возможность настроить MTA для передачи почты через заданный PHP-скрипт, чтобы выполнить то, что вы ищете.