Search the Community
Showing results for tags 'smpt'.
Found 1 result
-
I have windows 7 . My program sended mail by smtp , with ssl encoding. It worked without any problems on Delphi 2010 , when the same code was compiled on Delphi 10.4.2 it started to raise error " SSL negotiation failed." I need to send from @yandex.ru mail where ssl encoding is obligatory. How can i make such sending on this operation system and compiled with this version of Delphi ? My code: procedure TfmMain.buSimpSendClick(Sender: TObject); var IdSMTP1: TIdSMTP; idMessage1: TIdMessage; idAttach: TidAttachment; idText1: TidText; msgParts: TidMessageParts; DT:TDateTime; IdSSLIOHandlerSocketOpenSSL1:TIdSSLIOHandlerSocketOpenSSL; MailHost,EmpPsw,EmpUser: string; EmPort: Integer; EmpEmail: string; EmpName: string; EmailTo: string; I: Integer; wassent: Boolean; ini: TIniFile; begin EmPort := 587; EmailTo := ''; ini := Tinifile.Create(ChangeFileExt(paramStr(0),'.ini')) ; try MailHost := ini.ReadString('C','MailHost',''); EmpPsw := ini.ReadString('C','EmpPsw',''); EmpUser := ini.ReadString( 'C','EmpUser',''); EmPort := ini.ReadInteger('C','EmPort',0); EmailTo := ini.ReadString('C','EmailTo',''); finally ini.Free; end; memo1.Text := ''; Edit1.Text := 'MailHost='+MailHost+','+'EmpPsw='+EmpPsw+','+'EmpUser='+EmpUser+','+'EmPort='+IntToStr(EmPort)+','+'EmailTo='+EmailTo ; EmpName := empemail;//(nil); wassent := True and false;//(nil); IdSMTP1 := TIdSMTP.Create(nil) ; try try IdSMTP1.Host:= MailHost; IdSMTP1.Password:= EmpPsw; IdSMTP1.Username:= EmpUser; IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(IdSMTP1); IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0; IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; if EmPort>0 then IdSMTP1.Port := EmPort else IdSMTP1.Port := 465; IdSMTP1.UseTLS := utUseExplicitTLS; idMessage1 := TIdMessage.Create(IdSMTP1); idMessage1.OnInitializeISO := TCL.LInitializeISO; idMessage1.From.Address := EmpEmail; idMessage1.From.Name := EmpName; idMessage1.Subject := 'EmSubject'+DateTimeToStr(now);//'Письмо с картинкой AComp'+FormatDateTime('dd.mm.yyyy hh:mm:ss',Now); idMessage1.CharSet := 'Windows-1251'; idMessage1.ContentTransferEncoding := '8bit'; msgParts := idMessage1.MessageParts; try // Load slBody with your HTML text... idText1 := TidText.Create(msgParts);//, slBody); idText1.ContentType := 'text/html'; idText1.CharSet := 'Windows-1251'; idText1.ContentTransfer := '8bit'; //if FileExists(EmBodyFileName) then idText1.Body.Text := ' (EmailBody)'+ParamStr(0); idMessage1.Recipients.EMailAddresses := EmailTo; idSMTP1.Connect; idSMTP1.Send(idMessage1); ShowMessage('Sent ok,''EmPort='+IntToStr(EmPort)); wassent := True; finally if idSMTP1.Connected then idSMTP1.Disconnect; end; except on E: Exception do Memo1.text := Memo1.text + #13#10 + 'EmPort='+IntToStr(EmPort)+#13#10+ E.Message; end; finally IdSMTP1.Free; self.caption := TimeToStr(now); end; end;
- 10 replies