Как я могу создать почтовый сервер? - PullRequest
2 голосов
/ 23 февраля 2011

Я хотел бы иметь сервер, способный принимать электронные письма. Затем я хочу использовать PHP, чтобы запрограммировать способ отображения электронной почты для пользователей. Могу ли я сделать это чисто с помощью PHP? Я имею в виду, это не проблема отправлять электронные письма из PHP, но я не знаю, могу ли я получать электронные письма с помощью PHP? (В пути PHP получает запросы POST).


ДОБАВЛЕНО

В качестве ответа на первый ответ я хотел бы указать, что мне нужен SMTP-сервер. Я хочу иметь возможность общаться с SMTP-сервером программным способом. Например, я хочу иметь возможность «сообщить» SMTP-серверу создать новый адрес электронной почты. Мне также нужно знать, где хранятся входящие письма и в каком формате. Например, как я могу извлечь «отправитель», «cc», «bcc» из файла, соответствующего полученной почте.

Ответы [ 2 ]

6 голосов
/ 23 февраля 2011

хотел бы иметь сервер, способный принимать электронные письма.

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

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

Чем я хочу использовать PHP для программирования способа показа почты пользователям

Серверы, которые получают почту, обычно не показывают их пользователям,Они обычно хранят их стандартным способом (например, Maildir или mbox), к которому обращается другое программное обеспечение (например, локальный почтовый клиент или сервер IMAP).

Работа по показу электронной почты пользователю относится к электронной почтеклиентов.Программное обеспечение для веб-почты PHP на базе Web включает в себя SquirrelMail и RoundCube.AFAIK они оба действуют как клиенты IMAP.См. IMAP спецификацию .

В качестве ответа на первый ответ я хотел бы указать, что мне нужны SMTP-серверы.Я хочу иметь возможность общаться с SMTP-сервером программным способом.Например, я хочу иметь возможность «сообщить» SMTP-серверу создать новый адрес электронной почты.

Выберите SMTP-сервер, работающий в вашей ОС.Прочтите инструкции, чтобы узнать, как настроить доставку и принятые адреса.Обычно это сводится к манипулированию текстовыми файлами.

Мне также нужно знать, где хранятся входящие письма и в каком формате.Например, как я могу извлечь «отправитель», «cc», «bcc» из файла, соответствующего полученной почте.

Снова.Смотрите руководство для почтового сервера.Большинство из них даст вам варианты того, где хранить данные и в каком формате.

Тогда вам просто нужно решить, хотите ли вы получить PHP, чтобы копаться в них напрямую, или использовать сервер IMAP между ними.

2 голосов
/ 23 февраля 2011

Нет, это не легко возможно. PHP предназначен для (без сохранения состояния) протокола HTTP, в то время как почта отправляется в диалоге, который составлен из различных запросов и ответов.

Можно анализировать и обрабатывать почту, используя PHP, но я бы порекомендовал установить почтовый ящик, который вы можете читать из PHP, используя POP3. Затем ваше PHP-приложение может показывать и обрабатывать почту из этого почтового ящика.

...