Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   EMail Versand via GMX (https://www.delphipraxis.net/155571-email-versand-via-gmx.html)

Andidreas 29. Okt 2010 12:13

EMail Versand via GMX
 
hallo zusammen,

ich versuche gerad in delphi eine funktion zu basteln über die ein programm automatisch e-mails versenden kann...

im moment teste ich das ganze über mein gmx postfach...

anbei erst mal der source von meiner e-mail funktion:

Code:
function fnSendEMail(sHost, sUsername, sPassword, sFrom, sSenderEMail, sReceipt,
                       sSubject, sAttachment : String; strlBody : TStrings;
                       iPort : Integer) : Boolean;

var
idAttachment : TIdAttachmentFile;
idMessage    : TIdMessage;
SMTP         : TIdSMTP;

begin

  Result := True;

  //Create TIdSMTP and TIdMessage Componente
  SMTP := TIdSMTP.Create();
  idMessage := TIdMessage.Create();

  //Configure SMPTP
  SMTP.Host := sHost;
  SMTP.Username := sUsername;
  SMTP.Password := sPassword;
  SMTP.Port := iPort;

  //Configure idMessage
  idMessage.From.Text := sFrom;
  idMessage.Sender.Text := sSenderEMail;
  idMessage.Recipients.EMailAddresses := sReceipt;
  idMessage.Subject := sSubject;

  idMessage.Body.Clear;
  idMessage.Body := strlBody;

  //Attach Files
  If sAttachment <> EmptyStr Then
  Begin
    If FileExists(sAttachment) = True Then
    Begin
      idAttachment := TIdAttachmentFile.Create(idMessage.MessageParts, sAttachment);
    End;
  End;

  //Send E-Mail
  Try
    Try
      SMTP.Connect;
      SMTP.Send(idMessage);
      SMTP.Disconnect;
    Except
      Result := False;
      If SMTP.Connected = True Then
      Begin
        Try
          SMTP.Disconnect;
        Except
          MessageDlg('Could not disconnect from the E-Mail Server: ' + sHost, mtError, [mbOK], 0);
        End;
      End;
      MessageDlg('Could not send E-Mail to: ' + sReceipt, mtError, [mbOk], 0);
    End;
  Finally
    //Destroy TIdSMTP and TIdMessage Componente
    SMTP.Free;
    idMessage.Free;
  End;
folgende smtp daten übergebe ich an diese funktion:

smtp server: mail.gmx.net
port: hier habe ich die ports 25 und 465 ausprobiert

für den login habe ich meine e-mail adresse + passwort ausprobiert und auch die kunden nr. + passwort (so wie es in der gmx hilfe steht)

beim connect versuch erhalt eich dann immer den fehler:
Socket Error # 10060 Connection timed out

hat jemand eine idee woran das liegen könnte? habe ich einen fehler in meiner funktion?

Luckie 29. Okt 2010 12:19

AW: EMail Versand via GMX
 
Eventuell musst du bei GMX vorher deine Mails via POP3 abholen, um dich gegenüber GMX zu authentifizieren.

Miolin 29. Okt 2010 12:22

AW: EMail Versand via GMX
 
Jap, das Problem in ähnlicher Form hatte ich auch schon.
Eigentlich ist dort gar keine SMTP-Authentifizierung nötig.
Es reicht sich vorher am POP3 anzumelden.

Andidreas 29. Okt 2010 12:39

AW: EMail Versand via GMX
 
hmmm bringt bei mir auch nicht viel

habs mit der TIDPOP3 Indy komponente getestet

Code:
  POP3.Username := edt_user.text;
  POP3.Password := edt_password.text;
  POP3.Host    := edt_mailserver.text;
  POP3.Port    := StrToInt(edt_port.Text);

  POP3.Connect;
als server habe ich pop.gmx.net verwendet und als port 995

ich erhalt hier die gleiche fehlermeldung wie beim smtp...

hatt vielleicht noch jemand ideen was ich falsch mach?

Luckie 29. Okt 2010 12:43

AW: EMail Versand via GMX
 
Wie kommst du auf Port 995? Funktioniert es mit den Einstellungen mit deinem E-Mail Client?

hathor 29. Okt 2010 12:46

AW: EMail Versand via GMX
 
Port 587 ?

Klaus01 29. Okt 2010 12:50

AW: EMail Versand via GMX
 
Hallo,

hier ist beschrieben wie Thunderbird für gmx eingerichtet wird.
Ports sind da auch zu finden, sowie die Info das SSL verwendet wird.

Grüße
Klaus

shmia 29. Okt 2010 14:40

AW: EMail Versand via GMX
 
Zitat:

Zitat von Andidreas (Beitrag 1058470)
Socket Error # 10060 Connection timed out

Das ist recht eindeutig.
Die Komponente versucht einen TCP/IP-Verbindung herzustellen, aber der Server antwortet nicht.
Oder die Datenpakete werden durch eine Firewall geblockt.
Oder ein Virenscanner verhindert die Verbindung.
Es lässt sich ganz einfach testen mit TELNET.exe.
Code:
C:\> telnet mail.gmx.net smtp
Verbindungsaufbau zu mail.gmx.net...Es konnte keine Verbindung mit dem Host herg
estellt werden, auf Port smtp: Verbinden fehlgeschlagen

C:\>
So sieht das auf meinem Rechner aus (weil eine Firewall die Verbindung geblockt hat)

vergessen 29. Okt 2010 15:26

AW: EMail Versand via GMX
 
Nimm für GMX POP3.Port := 110;
den Klassiker :thumb:

HeikoAdams 29. Okt 2010 15:52

AW: EMail Versand via GMX
 
Zitat:

Zitat von Andidreas (Beitrag 1058480)
als server habe ich pop.gmx.net verwendet und als port 995

Hast Du denn auch die OpenSSL DLLs in das Verzeichnis von Deinem Programm kopiert. Sonst wird das nämlich nix mit der SSL-Verbindung zum GMX-Server und Du kriegst die Timeout-Meldung :wink:

Der normale POP3 Port ist 110, der normale SMTP Port ist 25


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