Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   1408F10B:SSL routines:SSL_Get_Record:wrong version number (https://www.delphipraxis.net/201041-1408f10b-ssl-routines-ssl_get_record-wrong-version-number.html)

NoName1 18. Jun 2019 11:00

1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag,
beim Senden von E-Mails über den Provider "serverdomain.org" bekomme die oben benannte Fehlermeldung.
Beim Senden über andere Provider wie GMX, Kabelmail, Web.de, oder t-Online bekomme ich keine Fehlermeldung.

Hier der Code für die Anmeldung:
Delphi-Quellcode:
procedure TFrmMailVerkehr.SendeEmail(aAnmelden: Boolean);
var
  pMailAdresse: string;
  pBCCListe: string;
  pErrMsg: string;
  pAnz: SmallInt;
  pEText: string;

  AMessage: TIdMessage;
  ASMTP: TIdSMTP;
  I: Integer;
  AStream: TMemoryStream;
  AMessageBuilder: TIdMessageBuilderHtml;

  procedure CheckMail;
  var
    I: Integer;
    APart: TIdMessagePart;
    AFileName: string;
    s: string;
  begin
    // ContentDisposition erweitern, sonst werden InlinImages
    // nicht auf Android angezeigt...
    AMessage.MessageParts.CountParts;
    for I := 0 to AMessage.MessageParts.Count - 1 do
    begin
      APart := AMessage.MessageParts[I];
      if (APart.ContentDisposition = 'inline') then
      begin
        s := APart.Headers.Values['Content-ID'];
        if s <> '' then
        begin
          AFileName := Copy(s, 2, Length(s) - 2);
          APart.Headers.Values['Content-Disposition'] := 'inline; filename="' +
            AFileName + '"';
        end;
      end;
    end;
  end;

  function ServerAnmelden: Boolean;
  begin
    Result := True;
    ASMTP := TIdSMTP.Create(Self);
    if ASMTP.Connected then
      ASMTP.Disconnect(True);

    try
      ASMTP.AuthType := satDefault;
      ASMTP.UserName := MailUserName;
      ASMTP.Password := MailPassWort;
      ASMTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(ASMTP);
      ASMTP.UseTLS := utUseImplicitTLS;
      ASMTP.ManagedIOHandler := True;
      ASMTP.Host := MailHostName;
 
      ASMTP.Connect;
    except
      on E: Exception do
      begin
        pErrMsg := e.Message;
        if ASMTP.LastCmdResult.Code <> '' then
          pErrMsg := ASMTP.LastCmdResult.Text.Text
            + sLineBreak + '--'
            + sLineBreak + pErrMsg;
        ASMTP.Free;
        Result := False;
      end;
    end;
  end;
begin
  if not ServerAnmelden then
  begin
    ShowMessage(pErrMsg);
  end;
Auf der Form sind keine Indycontrols abgelegt.
Im Anhang die Anmeldung bei dem Provider.
Weiß vielleicht jemand was ich wo ändern muß?
Vielen Dank für Eure Hilfe

DeddyH 18. Jun 2019 11:12

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Hilft das hier? https://forums.embarcadero.com/messa...ssageID=874455

mjustin 18. Jun 2019 13:01

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Das hier hat oft geholfen:

https://mikejustin.wordpress.com/201...-applications/

Wird Port 587 verwendet? Dann ist es vermutlich nicht implicit TLS sondern explicit (siehe verlinkten Code).

NoName1 18. Jun 2019 14:47

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
DeddyH und mjustin,
vielen Dank für Eure Antworten, die bestimmt helfen können.
Den Code von mjustin würde ich gerne mal ausprobieren, aber dazu fehlt mir jetzt die Zeit.
Um zu Testen benötige ich einfach mehr Entspannung.
Mir wäre geholfen, wenn ich wüßte, wo ich genau das "explcit" einfügen soll.
Ich finde dazu in meinem Code keinen Ansatzpunkt.
Und ja es wird Port 587 verwendet.

Edit:
Ich habe es gefunden:
ASMTP.UseTLS := utUseExplicitTLS;

Allerdingst muss ich es noch testen.

NoName1 19. Jun 2019 16:56

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Mit
Delphi-Quellcode:
ASMTP.UseTLS := utUseExplicitTLS;
werden die E-Mails gesendet.
Es stellt sich mir aber die Frage, wann nehme ich
Delphi-Quellcode:
ASMTP.UseTLS := utUseExplicitTLS;
und wann
Delphi-Quellcode:
ASMTP.UseTLS := utUseImplicitTLS;
Kann man dies irgendwie feststellen??
Gibt es eine Regel die beachtet werden muß?
Hat darauf evtl. jemand eine Antwort?

mjustin 23. Jun 2019 06:44

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Zitat:

Zitat von NoName1 (Beitrag 1435045)
Mit
Delphi-Quellcode:
ASMTP.UseTLS := utUseExplicitTLS;
werden die E-Mails gesendet.
Es stellt sich mir aber die Frage, wann nehme ich
Delphi-Quellcode:
ASMTP.UseTLS := utUseExplicitTLS;
und wann
Delphi-Quellcode:
ASMTP.UseTLS := utUseImplicitTLS;
Kann man dies irgendwie feststellen??
Gibt es eine Regel die beachtet werden muß?
Hat darauf evtl. jemand eine Antwort?

Wenn ich den Code https://mikejustin.wordpress.com/201...-applications/ richtig interpretiere, kann man das anhand der Portnummer unterscheiden. Ein Port für explizites TLS verwendet die Portnummer 587.

Delphi-Quellcode:
if edSMTPPort = SMTP_PORT_EXPLICIT_TLS then
  SMTP.UseTLS := utUseExplicitTLS
else
  SMTP.UseTLS := utUseImplicitTLS;

NoName1 26. Jun 2019 08:08

AW: 1408F10B:SSL routines:SSL_Get_Record:wrong version number
 
Ich benutze diesen Code
Delphi-Quellcode:
     
if (MailPort = 465) or (MailPort = 587) then
        ASMTP.UseTLS := utUseExplicitTLS
      else
        ASMTP.UseTLS := utUseImplicitTLS;
Damit klappt das Senden der E-Mails ohne Anhänge problemlos, aber wenn ich der E-Mail einen Anhang
hinzufüge wird nicht mehr gesendet. Das Programm "tritt auf der Stelle" und ich muss es mit Alt-F4 beenden,
weil es auf keine Mausklicks oder sonstiges reagiert. Was kann dies nun wieder sein?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz