Сервис переотправки почты. Техническое задание.
Вступление
Пользователям проекта необходима возможность связи и координации действий. При этом важно сохранять всю коммуникацию (электронные письма) в БД.
Все потоки информации «Пользователь <> Пользователь» должны проходить через сайт для 1) фиксации; 2) избегания прямого контакта.
Каждый пользователь получит себе почтовый ящик name@user.doitforme.net. Любое письмо, которое попадает на этот ящик, будет пересылаться на обычный емейл пользователя.
Если пользователю напишет другой пользователь со своего емейла (обычного, например @gmail.com), то в письме обратный адрес автоматически поменяется на @user.doitforme.net. Если такого адреса нет в системе, то письмо вернется отправителю.
Функциональная спецификация

Сервис должен
- корректно работать с
- Почтовые клиенты
- Mozilla Thunderbird
- Outlook
- Outlook Express
- The Bat!
- Eudora
- Веб-почта
- Gmail
- Yahoo mail
- Mail.ru
- Hotmail
- Почтовые клиенты
- понимать форматы
- plain text
- HTML
- понимать вложения (attachments) и складывать их в отдельное место
- заменять заголовки (headers) писем и уметь менять их
- менять все вхождения одного адреса почты на другой
- складывать полезную информацию в БД (через определенный интерфейс)
- соответствие спецификациям POP3 и SMTP
Unit Tests
- разбор почты см. Почтовые клиенты
- отправка почты
Сценарии
1. Отправка письма
Пользователь А (с почтовым ящиком nikky@hotmail.com) открывает сайт, на котором видит адрес Пользователя Б [вида userB@doitforme.net]. А окрывает свой почтовый клиент (Outlook Express) и копирует в него адрес userB@doitforme.net. Прикрепляет два файла (лицо человека, которому нужно передать необходимую вещь, и карта проезда) и отправляет письмо.
2. Получение письма
В течение короткого времени Пользователь Б в своем ящике mister.xyz@gmail.com получает письмо от Пользователя А. При этом все адреса Пользователя А представлены в виде userA@doitforme.net.
Пользователь Б отвечает на письмо, нажав кнопку “Reply”. Письмо уходит Пользователю А.