Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   E-Mail senden geht nicht mehr (https://www.delphipraxis.net/208456-e-mail-senden-geht-nicht-mehr.html)

NoName1 31. Jul 2021 15:16

E-Mail senden geht nicht mehr
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag,
seit einigen Tagen kann ich aus meinem Programm keine E-Mail mehr senden.
Ich benutze die Indy-Komponenten zum Senden der E-Mails und es können nur E-Mails gesendet und nicht empfangen werden.

Es wird der Fehler in der Anlage angezeigt.
Für die Serveranmeldung usw. nutze ich folgen Code:
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 := utNoTLSSupport;
      ASMTP.UseTLS := utUseImplicitTLS;
      if (MailPort = 465) or (MailPort = 587) then
        ASMTP.UseTLS := utUseExplicitTLS // utNoTLSSupport
      else
        ASMTP.UseTLS := utUseImplicitTLS;


      ASMTP.ManagedIOHandler := True;
      ASMTP.Host := MailHostName;
      ASMTP.Port := MailPort;
      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;
......

Bei meiner Recherche bin ich auf diesen Beitrag gestoßen:
https://www.delphipraxis.net/198893-...icht-mehr.html
Aber in diesem Beitrag geht es um den Download und nicht um das Senden von E-Mails.

Hat jemend für dieses Problem eine Lösung?

Vielen Dank für die Hilfe im Voraus.

Faxe 31. Jul 2021 16:35

AW: E-Mail senden geht nicht mehr
 
Ich vermute mal dein Mail-Provider verlangt jetzt mindestens TLS 1.1 oder sogar 1.2.

Was nimmst du?

Gruß,
Faxe

gmc616 4. Aug 2021 18:06

AW: E-Mail senden geht nicht mehr
 
TLS 1.1 und 1.2. wurde IMO als unsicher eingestuft, weshalb es möglich ist, dass dein Provider TLS 1.3 voraussetzt.
Ein googlen nach "libeay32.dll" bzw. "ssleay32.dll" und "TLS 1.3" könnte dir weiterhelfen.

Dann gibt es auch unterschiedliche Authentifizierung-Methoden für das Senden per SMTP. So setzen verschiedene Mail-Server eine Authentifizierung per POP3 voraus, bevor du eine eMail per SMTP versenden kannst.
In wie weit das in den Indy-Klassen implementiert ist, kann ich nicht sagen (ich nutze sie nicht). Evtl. aber die Delphi-Praxis-Community ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 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