Автор Adsasd uhasigi задал вопрос в разделе Другие языки и технологии
Как обьявить обращение к idMessage (Delphi 7)??? и получил лучший ответ
Ответ от Oleh_Huz'[гуру]
idSMTP1:=TIdSMTP.Create(nil);
idmessage1:=Tidmessage.Create(nil);
idSMTP1.OnWork:=IdSMTP1Work;
idSMTP1.OnWorkBegin:=IdSMTP1WorkBegin;
idSMTP1.OnWorkEnd:=IdSMTP1WorkEnd;
idSMTP1.OnStatus:=IdSMTP1Status;
idSMTP1.ConnectTimeout:=10000;
idSMTP1.ReadTimeout:=60000;
SysLocale.PriLangID := LANG_UKRAINIAN;
//SysLocale.PriLangID := LANG_RUSSIAN;
IdMessage1.CharSet := 'UTF-8'; //Windows-1251
IdMessage1.ContentTransferEncoding := '8bit';
idsmtp1.Host:='smtp.mail.ru';
idsmtp1.MailAgent:='Mozilla'; // имя агента
idsmtp1.Port:=port; // Port:=2525; отправлено и 587 то же 465 - не хочет и 25 не хочет
idsmtp1.Username:=login;
idsmtp1.Password:=pass;
idmessage1.Body.Add(memo1.text) ;// текст письма
if edit4.Text<>'Имя вложенного файла' then TIdAttachmentFile.Create(IdMessage1.MessageParts, pchar(edit4.Text));// аттач файл, который нужно отправить
idmessage1.Subject:=AnsiString(edit3.Text);// тема письма
idmessage1.From.Text:=login;// пишет от кого
idmessage1.Recipients.EMailAddresses:=email;// кому
idmessage1.IsEncoded:=true;
{это необходимо использовать для SSL для гугл и маил. ру}
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL1.Destination := IdSMTP1.Host+':'+IntToStr(IdSMTP1.Port);
IdSSLIOHandlerSocketOpenSSL1.Host := IdSMTP1.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := IdSMTP1.Port;
IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdSMTP1.UseTLS := utUseExplicitTLS;
try
try
idSMTP1.connect; // соединяемся
idSMTP1.Send(idmessage1);// отправляем
memo2.Lines.Add('Отправлено! ');
Except on E:Exception do
begin
memo2.Lines.Add('Не отправлено!!! ');
end;
end;
finally
if idsmtp1.Connected then idsmtp1.Disconnect; // разъединяем
idsmtp1.Free;
idmessage1.Free;
IdSSLIOHandlerSocketOpenSSL1.Free;
Memo2.Lines.Add('Двойной клик - скрыть');
button2.Enabled:=true;
button1.Enabled:=true;
end;
end;
Вопрос к программистам на Delphi
ну видимо нет ответа от SMTP сервера
idSMTP.send(idmessage);
except
on E:
подробнее...