Добрый день. Скачал последнюю, на сегодняшний день, версию indy с сайта
https://indy.fulgan.com/ZIP/. Установил на delphi 7. Все четко. Прошу помощь допилить мой код. Уже разобрался, как отправлять сообщения. Проблему с кодировкой тоже решил (В модуле IdGlobalProtocols.pas находим функцию IdGetDefaultCharSet и меняем строку LANG_RUSSIAN: Result := idcsKOI8_R; на LANG_RUSSIAN: Result := idcsWINDOWS_1251; )
Не могу разобраться, как прикреплять к сообщению файлы и отправлять их. Поиска в в google наткнулся на следующий код:
Код:
TIdAttachmentFile.Create(IdMessage1, 'D:\Проба.zip');
Как мне адаптировать данный код в мой проект. Вот текущий код моего проекта. Отправка работает отлично. Осталось разобраться только с вложениями. На форме располагаются компоненты TIdSMTP, TIdMessage1, TIdSSLIOHandlerSocketOpenSSL
Код:
procedure TMail.Button2Click(Sender: TObject);
begin
IdMessage1:=TIdMessage.Create;
IdMessage1.From.Address:='marat.tuhtarov@yandex.ru';
IdMessage1.From.Name:='Злой админ';
IdMessage1.Recipients.EMailAddresses:='pirat03071988@mail.ru';
IdMessage1.ContentType:='text/plain';
IdMessage1.CharSet:='windows-1251';
IdMessage1.Body.Text:='ТЕСТ';
IdMessage1.Subject:='Рассылка новых объектов';
IdMessage1.Date:=now;
{настройка компонентов перед отправкой}
IdSMTP := TIdSMTP.Create(nil);
IdSMTP.Host:='smtp.yandex.ru';
IdSMTP.Port:=465;
IdSMTP.Username:='marat.tuhtarov';
IdSMTP.Password:='MyPassword';
IdSMTP.AuthType:=satDefault;
{это необходимо использовать для SSL}
IdSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL.Destination :=IdSMTP.Host+':'+IntToStr(IdSMTP.Port);
IdSSLIOHandlerSocketOpenSSL.Host:=IdSMTP.Host;
IdSSLIOHandlerSocketOpenSSL.Port:=IdSMTP.Port;
IdSSLIOHandlerSocketOpenSSL.DefaultPort:=0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method:=sslvTLSv1;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode:=sslmUnassigned;
IdSMTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL;
IdSMTP.UseTLS:=utUseExplicitTLS;
try
{отправляем письмо}
IdSMTP.Connect();
except
MessageBox(handle,pchar('ОШИБКА!!! Подключение к SMTP серверу не удалось'+#10+#13+
'Проверьте настройки программы, а так же не блокируется ли'+#10#13+
'порт SMTP сервера антивирусом или файреволом(брандмауэром)'), pchar(Mail.Caption), 48);
exit;
end;
IdSMTP.Send(IdMessage1);
Application.ProcessMessages;
IdSMTP.Disconnect;
end;
Код:
procedure TMail.FormClose(Sender: TObject; var Action: TCloseAction);
begin
idMessage1.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
idSMTP.Free;
end;