Библиотека DLL и тестовое приложение отправки писем через smtp

  • Опубликовано 3 года назад
  • Просмотры 5
  • Закончить проект

Описание

Задача: требуется из нескольких приложений, написанных на Delphi 7, отправлять письма с использованием smtp. Шифрование может быть как SSL, так и TLS, либо совсем отсутствовать. Отправка может быть напрямую, либо через прокси-сервер.

Компоненты indy самой Дельфи7 не позволяют использовать актуальные версии openSSL, поэтому не удается отправлять письма с некоторых почтовых серверов. Поэтому в качестве средства отправки можно использовать curl или любую библиотеку, позволяющую по лицензии использование в коммерческих проектах. Но взаимодействие с этим средством должно происходить из приложения, написанного на Delphi7 (или совместимый код, который на ней скомпилится).

Отправка письма производится от имени заданной учетки почты. SMTP сервера с которыми ОБЯЗАТЕЛЬНО должно успешно работать:
- smtp.office365.com
- smtp.gmail.com
- smtp.mail.ru
- smtp.yandex.ru

Входные данные для отправки писем:
1). данные прокси-сервера:
- используется он или нет (поле boolean или integer)
- IP адрес прокси сервера
- порт прокси
- логин
- пароль
2). данные почтовой учетки, от имени которой будут отправлять сообщения:
- SMTP сервер (например, smtp.office365.com)
- порт
- тип шифрования (один из вариантов – его отсутствие)
- логин почты
- пароль
3). само отправляемое письмо:
- тема письма
- кому
- текст письма
- путь до файла, который надо к письму прикрепить. (если поле пустое, то прикреплять ничего не надо)

При ошибке отправки, основному приложению должен вернуться текст ошибки. При успешной отправке, должен вернуться код успешности. Как вариант, экспортируемая функция возвращает код результата. Если 0 – все хорошо. Если нет, то это код ошибки и плюс в отдельной переменной функции с типом out текст ошибки.
например так:
function SendEmail(aSubject: string; aBody: String; aRecipients: string;
aAttachFileName: string; out ResStr: string): integer;

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ ЗАДАЧИ:
1). если реализация с использованием сторонней библиотеки, то ее бинарник и исходный код (или ссылка на ее репозиторий)
2). тестовое приложение, код которого написан на Delphi7 или скомпилится на ней, в котором реализована работа с библиотекой: в форме в простых полях задаются параметры прокси, smtp сервера и учетки почты от имени которой делать отправку, поля для заполнения темы, адресата, текста письма и адреса файла для прикрепления. кнопка отправки письма по которой отправка будет произведена.
3). отправка должна успешно работать с SMTP серверами, перечисленными выше. Тип шифрования должен поддерживаться и SSL и TLS (можно на основе openSSL).
Должно работать успешно как при использовании прокси сервера, так и без него.

Опубликовано 3 года назад