archakov06
@archakov06
Frontend-разработчик (ReactJS)

Как создать сервис временных почт?

Задался вопросом создания сайт временных почт. Уже давно интересна эта тема, хотелось ради практики посмотреть. Есть ли какие-нибудь статьи или возможные варианты?

Не пойму, как сделать прием писем для любого адреса, даже если он и не создан на сервере.
  • Вопрос задан
  • 582 просмотра
Решения вопроса 1
seriyPS
@seriyPS
Могу про мой сервис https://dropmail.me/ рассказать.

Написан он на Erlang. Содержит в себе SMTP сервер https://github.com/Vagabond/gen_smtp и HTTP сервер https://github.com/ninenines/cowboy в одном Erlang демоне.

Пользователь заходит на страничку сайта, подключается по websocket к серверу. Сервер генерирует ему уникальный email адрес (уникальность поддерживается хранящимся в памяти счетчиком) и отправляет этот адрес клиенту по websocket. Так же этот адрес записывается в таблицу в памяти демона, в которой хранится соответствие Email <-> Websocket.

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

Знаю так же, что на темпмейл.ру используется SMTP сервер https://github.com/haraka/Haraka
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
deemytch
@deemytch
linux root, ruby/perl programmer, sql, backend.
Postfix + (My|Postgre)SQL
Можно создавать/удалять ящики на лету, без перезагрузки.
Ответ написан
Комментировать
customtema
@customtema
arint.ru
Возьмите готовый почтовый сервер, или напишите свой. Это несложно, на самом деле.
Ответ написан
Комментировать
Stac
@Stac
Как происходит отправка письма:
- отправитель делает запрос в DNS на предмет mx записи для домена - определяется сервер, который примет почту для адреса на заданном домене.
- отправитель соединяется с найденным сервером по SMTP и передает письмо.

все.

Тут нигде нет почтовых ящиков в этом процессе. Обычный сервер при приеме почты проверит наличие у себя адреса и не примет письмо, если адресат не существует.

Вам же не надо ничего проверять - принимайте все письма.

Курите SMTP, пишите свой сервер или настройте один из существующих.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы