mitaichik
@mitaichik

Как принимать письма на php?

Всем привет ) Надо создать почтовый сервер, в котором программно из php можно создавать аккаунты (почтовые ящики), принимать на них письма и парсить их.

И чтоб можно было настроить хук - когда письмо приходит, вызывался бы скрипт.

Как такое сделать? В какую сторону копать? Сервер на ubuntu.
  • Вопрос задан
  • 489 просмотров
Пригласить эксперта
Ответы на вопрос 4
SagePtr
@SagePtr
Еда - это святое
Ну, в PHP начиная с какой-то версии, можно создавать сокеты и слушать входящие соединения, потому вполне можно написать собственный почтовый сервер, принимающий письма и позволяющий проверять) Другое дело - а оно надо?)
Ответ написан
Комментировать
PavelK
@PavelK
А не проще ли VPS заюзать и поднять свой почтовый сервер?
Ящики можно в базе хранить и создавать соответственно из php
Сами письма можно так же хранить в базе, и по крону запускать php скрипт и делать нужную выборку хоть по регэкспу.
Postfix + dbmail справятся с этим.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Ставите почтовый сервер, в настройках почтового сервера делаете вызов команды по приходу письма (как именно зависит от используемого сервера, это уже другой вопрос). А что это будет за команда - это уже вы решаете, делаете себе вызов php файла если нужно, или HTTP-запрос куда-то, или ещё что-то.

Посмотрите на iRedMail, после установки у вас есть почтовый сервер, БД с аккаунтами, письма в каком-то формате в файловой системе Dovecot хранит (нагуглите в каком если нужно, навскидку не помню, искать лень). Остается поковырять графическую панельку чтобы разобраться как создавать самому произвольные аккаунты напрямую и вытаскивать что вам нужно.

Таким образом у вас:
  • Почтовый сервер с БД
  • Вызов скрипта по приходу письма
  • В скрипте идете в папку с письмами и вытаскиваете всё, что вам нужно
  • При необходимости меняете записи в БД для добавления доменов и аккаунтов, управления квотами и всяким таким
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Не до конца ясна задача. Для чего вам нужно создавать почтовые ящики и парсить оттуда письма? Если это не сервис для людей, а надо просто делать подставные ящики, тогда проще настроить систему email-алиасов, чтобы письма на самом деле ссыпались все на один реальный ящик.
Или даже настроить почтовый сервер так, чтобы все письма на несуществующие email в домене падали куда вам нужно.
Думаю это проще в реализации будет, чем то, что вы задумали изначально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы