Мне очень трудно понять, как работает SMTP.
Я уже читал:
Я знаю, что SMTP-сервер слушает ПОРТ 25 и обменивается командами с клиентом.
Предположим, я владею доменом mydomain.com и там работает мой собственный реализованный SMTP-сервер.
Кто-то хочет, чтобы меня прислали (например bob@mydomain.com) электронное письмо.
На моем сервере я буду видеть такой трафик:
Server Response: 220 mydomain.com SMTP
Client Sending : HELO domain.com
Server Response: 250 Hello domain.com
Client Sending : MAIL FROM: <me@domain.com>
Server Response: 250 Ok
Client Sending : RCPT TO: <bob@mydomain.com>
Server Response: 250 Ok
Client Sending : DATA
Server Response: 354 End data with <CR><LF>.<CR><LF>
Client Sending : Subject: Example Message
Client Sending : From: me@domain.com
Client Sending : To: bob@mydomain.com
Client Sending :
Client Sending : Yo,
Client Sending :
Client Sending : Sending a test message.
Client Sending :
Client Sending : Later,
Client Sending : Carl
Client Sending : .
Server Response: 250 Ok: queued as 45334
Client Sending : QUIT
Server Response: 221 Bye
Итак, у моего сервера теперь есть массив байтов, содержащий сообщение где-то в памяти.
Вопрос:
Что мне теперь делать с этим сообщением? (при условии, что получатель находится на моей машине - ретрансляция не требуется)
Чтобы почта доставлялась в почтовый ящик пользователя, вам понадобится агент доставки почты или MDA.
Агент доставки почты или агент доставки сообщений (MDA) - это программный компонент компьютера, который отвечает за доставку сообщений электронной почты в почтовый ящик локального получателя. Также называется LDA или местным агентом доставки. В архитектуре почты Интернета локальная доставка сообщений достигается посредством обработки сообщений от агента передачи сообщений и сохранения почты в среде получателя (обычно в почтовом ящике).
Подробнее здесь: https://en.wikipedia.org/wiki/Mail_delivery_agent