Создание библиотеки для отправки почты через SMTP ?
Добрый день! Пытаюсь создать библиотеку для отправки почты без использывания Outlook. Начал писать в Delphi dll возникла следующая проблема. В кодировка темы сообщения отображаеться некорректно. Также некоторые клиеты тело письма тоже некорректно читаю. Может кто нибудь сталкивался с данной проблемой??? привожу текст процедуры заполнения сообщения. Для отправки сообщения использую Indy.
IsAttach : Boolean);stdcall;
begin
try
EMessage := TIdMessage.Create(Application);
EMessage.Clear;
with EMessage do
begin
Body.Add(BodyText); // передача данных из memo в компонент IdMessage, для последующей отправки
Recipients.EMailAddresses :=RecipientstMail;
From.Text := FromMail; // майл отправителя письма
Subject := SubjectMail;
if (IsAttach) then
begin
MessageParts.Clear; ///очистка пути прикрепления файла
TIdAttachment.Create(MessageParts,AttachPath);
end;
end;
except
ShowMessage('Ошибка создания сообщения');
end;
end;
Нравится
Это проблема компонентов Indy, подробнее смотрите на профильных форумах по Delphi.
Как вариант, попробуйте использовать компоненты ICS - там с кодировкой дела обстоят лучше.
--------------------------------------------
Лабитек
Центр разработки приложений
Ну тогда все строковые переменные WideString. Ну а по поводу Indy не знаю, но необходимо проверить как они с юникодом. Возможно скачать последнюю версию.
А вы не посоветуете может заменить Indy на кокой нибудь другой компанент?
"Валерий Андрусик" написал:Как вариант, попробуйте использовать компоненты ICS
Валерий уже посоветовал :). Вы не пробовали ещё?
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Скачал ICS. Почему то сразу возникли проблемы с установкой. Установил. Нашел как устранить проблему с кодировкой темы в Indy 9. Но тут появилась новая. При приеме почты кодировка некоторых сообщений так же карявая. Можно если нетрудно ссылку на работоспособный пример кода с компонентами ICS?
Нашел решения и для тело письма. Письма с форума приходят в кодировке UTF-8. Есть функция UTF8Decode которая переводит из UTF-8 в нужную мне кодировку.
И последний вопрос: В строку кому можно записать не один адрес а несколько. Можно ли туда добавить порядка 2 000 адресов для рассылки клиентам счетов например ???
Думаю, можно создать массив из 2000 адресов и в цикле отправить 2000 писем по одному каждому клиенту. В строку вряд ли столько поместится.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Спасибо всем за помощь. буду работать над библиотекой.
Иван, да и многие SMTP сервера имеют ограничения на количество адресов в полях TO, CC, BCC...
следовательно логичнее использовать совет Олега:
"Лабьяк Олег Игоревич" написал:создать массив из 2000 адресов и в цикле отправить 2000 писем по одному каждому клиенту.