Open DyerQ opened 8 years ago
public abstract class BusinessCard {
private String mail;
private Map<String, String> properties = new HashMap<>();
public String getMail() {
return mail;
}
public String getProperty(String key) {
return properties.get(key);
}
}
public abstract class Mail {
private String to;
private String body;
public String getTo() {
return to;
}
public String getBody() {
return body;
}
}
public abstract class MailTemplate {
private String body;
public String getBody() {
return body;
}
public abstract Mail getMail(BusinessCard card, Properties defaultProperties);
}
<?xml version = "1.0"?>
<business-cards>
<business-card>
<mail>vasiliy.urosov@phystech.edu</mail>
<properties>
<property>
<name>full-name</name>
<value>Василий Уросов</value>
</property>
<property>
<name>university</name>
<value>МФТИ (ГУ)</value>
</property>
</properties>
</business-card>
<business-card>
...
</business-card>
</business-cards>
Обзор
Пишем программку, которая будет массово отправлять почту. Ключевыми возможностями будут хранение списка рассылки в xml и поддержка шаблонов для писем.
Структура папок
Папка итогового приложения будет выглядеть следующим образом (директории помечены жирным):
Папка bin хранит в себе собранные jar'ники вашего кода и все используемые библиотеки. Это версия, которая будет в релизе, а во время разработки мы будем писать код в папку src и использовать pom.xml (настроечный файл Maven).
Папка config будет содержать файлы .properties, задающие настройки приложения:
Папки входных данных business_cards и mail_tempates устроены следующим образом:
recipients.xml - хранит данные обо всех загруженных пользователей.
Далее идут скрипты запуска, останова приложения и файл, в который будет складываться вывод. По плану приложение не должно быть привязано к какому-либо окну операционной системы.
Сроки
На всё про всё у нас должно уйти 2 недели. Первую неделю мы будем заниматься реализацией, а на 2-й неделе будем решать возникающие вопросы и заниматься интеграцией ваших API.
Технические данные
Ориентируйтесь на то, чтобы писать в Java 7+, корневой пакет для всех классов ru.ncedu.bestgroup.mailing, применяемые классы и подпакеты будут опрелелены в других ишах.