Thema: Delphi SMTP über Strato

Einzelnen Beitrag anzeigen

H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#1

SMTP über Strato

  Alt 2. Jan 2023, 19:53
Moin,

bisher habe ich Emails immer über einen eigenen Mailserver verschickt - jetzt würde ich das gerne aber direkt bei Strato machen.

Mit folgender function hatte das bisher geklappt:

Delphi-Quellcode:
function TMailForm.SendeMail(MailEmpfaenger, CCListe, Betreff, Anhang :string; Body :TStringList; MailAbsender, MailPasswort, MailServer: String; MailPort: Integer) : boolean;
var
  iAttachment : TIdAttachment;
  Erfolg: Boolean;

begin
  (* Connect mit Server *)
  MailForm.IdSMTP1.AuthType := satDefault; // simpler Login ohne Authentifizierung
  MailForm.IdSMTP1.Host := MailServer;
  MailForm.IdSMTP1.Port := MailPort;
  MailForm.IdSMTP1.UseTLS := utUseRequireTLS; // mit SSL -> Port dann in aller Regel 587
  MailForm.IdSMTP1.Username := MailAbsender; // Benutzername
  MailForm.IdSMTP1.Password := MailPasswort; // Passwort
  // Verbinden mit Server
  try
   MailForm.IdSMTP1.Connect;
  except
   on E: Exception do
    begin
       result := false;
       Application.MessageBox (PChar(E.Message),'Verbindungsfehler Connect !',MB_OK);
       MailForm.IdSMTP1.Disconnect;
       exit;
    end;
  end;

  (* Mail erstellen *)
  MailForm.IdMessage1.ContentType := 'multipart/*'; // mit Anhang!
  iAttachment := TIdAttachmentFile.Create(MailForm.IdMessage1.MessageParts, Anhang) ;
  MailForm.IdMessage1.Body.Assign(Body); // der eigentliche eMail -Text aus einem TMemo
  MailForm.IdMessage1.Priority := TIdMessagePriority(2); // Priorität
  MailForm.IdMessage1.Recipients.EMailAddresses := MailEmpfaenger; // Empfängeradresse
  MailForm.IdMessage1.ReplyTo.EMailAddresses := MailAbsender; // Anwortadresse
  MailForm.IdMessage1.From.Text := MailAbsender; // Absenderadresse
  MailForm.IdMessage1.Subject := Betreff;

  try
     MailForm.IdSMTP1.Send(MailForm.IdMessage1);

  except
    on E: Exception do
    begin
       result := false;
       Application.MessageBox (PChar(E.Message),'Verbindungsfehler Versand !',MB_OK);
       MailForm.IdSMTP1.Disconnect;
       exit;
    end;
  end;
  result := true;
  MailForm.IdSMTP1.Disconnect;
end;
Wobei es mit:

MailAbsender = h.bothur@beispiel.de
MailPasswort = 123456789ABC
MailServer = 192.168.20.5
MailPort = 465
MailEmpfaenger=hans@beispiel.de

immer - wenn man im entsprechendem Netzwerk war - funktioniert hat.


Wenn ich es jetzt aber direkt bei Strato versuchen will:

MailAbsender = h.bothur@beispiel.de
MailPasswort = 123456789ABC
MailServer = smtp.strato.de
MailPort = 465
MailEmpfaenger=hans@beispiel.de

dann bekomme ich bei MailForm.IdSMTP1.Send(MailForm.IdMessage1); eine Fehlermeldung:

Im Projekt MailVersand.exe ist eine Exception der Klasse EidOSSLUnderlyingCryptoError mit der Meldung "Fehler beim erbinden mit SSL.
error: 1409442E:SSL3_READ_BYTES:tlsv 1 alert protocol version" aufgetreten.

Delphi ist Embarcadero® Delphi 10.4 Version 27.0.40680.4203
ssleay32.dll und libeay32.dll liegen im Programmverzeichnis.


Kann mir das jemand erklären was ich da falsch mache ?

Gruss
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat