Entwickler-Ecke

Internet / Netzwerk - Email versenden Fehler?


Dude566 - Fr 30.01.09 13:01
Titel: Email versenden Fehler?
Hi,

ich habe ein Programm geschrieben welches Emails versenden soll, bisher nur kompatibel mit Web.de, wird aber noch erweitert.

Wenn ich dann alles ausgefüllt habe und die Email verschicken will, kommt nach kurzer Zeit folgende Meldung:

user defined image

Der Fehler wird im Code an der markierten Stelle angezeigt:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Edit3: TEdit;
    Label3: TLabel;
    GroupBox3: TGroupBox;
    Edit4: TEdit;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
const
  SMTPServer = 'smtp.web.de';
  SMTPPort = 25;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     with idMessage1 do begin
      Body.Assign(Memo1.lines);
      From.Text := Edit1.Text;
      Subject := 'Betreff[/img]';
      Recipients.EmailAddresses := Edit3.Text;
      CCList.EmailAddresses := '';
      BCCList.EmailAddresses := '';
      Priority := mpNormal;
     end;

     with idSMTP1 do begin
      Username := Edit1.Text;
      Password := Edit2.Text;
      Port := SMTPPort;
      Host := SMTPServer;
      try
        Connect;
        Send (idMessage1);
      except
       ShowMessage ('Es ist ein Fehler aufgetreten');
      end;
      Disconnect;
     end;
end;

end.


Gruß


matze - Fr 30.01.09 13:14

ich glaube bei Web.de ist es so, dass man sich erst via POP3 zum Server verbinden muss. Dann erst kann man via SMTP eMails versenden.


Dude566 - Fr 30.01.09 13:24

Ich habe mich an das Tutorial hier gehalten: http://progger-ag.de/index.php?page=tutdelphimail

In dem Video scheint es ja zu klappen. :roll:


GTA-Place - Fr 30.01.09 14:58

Also meiner Meinung nach sagt die Fehlermeldung alles aus. "POP3 logon too old" und in Verbindung mit matzes Kommentar, ergibt das Sinn. Wieso probierst du nicht einfach ein POP3-Login aus?


Dude566 - Fr 30.01.09 17:34

Ok wenn du mir sagen kannst wie dies geht. Oder meinst du garkein smtp.web.de sondern pop3.web.de?

Oder ist da eine ganz andere Verbindung gefragt?

I need help.


jaenicke - Fr 30.01.09 17:38

Du müsstest kurz eine Verbindung mit TIdPop3 herstellen um dich zu authentifizieren und dann deinen Code ausführen.


Dude566 - Fr 30.01.09 17:50


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
const
  POP3Server = 'pop3.web.de';
  SMTPPort = 25;

with idPOP3Server1 do begin
      Username := Edit1.Text;
      Password := Edit2.Text;
      Port := SMTPPort;
      Host := POP3Server;
      try
        Connect;
        Send (idMessage1);
      except
       ShowMessage ('Es ist ein Fehler aufgetreten');
      end;
      Disconnect;
     end;


So?


matze - Fr 30.01.09 18:03

Nein.
Deine SMTP Routine bleibt wie sie ist. Nur davor eine Verbindung via IdPOP3 aufbauen.


Dude566 - Fr 30.01.09 18:07

Ok, nur wie?

Da ich das ganze nach einem Tutorial gemacht habe, verstehe ich noch nicht so ganz wie ich dann nur kurz eine Verbindung mit dem POP3Server aufbauen kann.


matze - Mo 02.02.09 10:12

Einfach mit der Komponente IdPop3


Dude566 - Mo 02.02.09 19:34

Also und was soll in dem Code stehen? Ich habe es so wie mit SMTP gemacht, doch das funktioniere nicht.

Was mache ich falsch?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
with idPOP3 do begin
      Username := Edit1.Text;
      Password := Edit2.Text;
      Port := 25;
      Host := 'pop3.web.de';
      try
        Connect;
      except
       ShowMessage ('Es ist ein Fehler aufgetreten');
      end;
      Disconnect;
     end;


Da sind dann aufeinmal Username und Password undefinierte Bezeichner obwohl sie ohne das vorher Prima gingen.

Und bei do begin ist auch ein fehler, "'.' erwartet aber 'do' gefunden". :shock: :?:

Bitte helft mir, ist doch fast fertig. ;)


Xentar - Mo 02.02.09 20:18

idPop3?
Bist du sicher, dass deine Komponente so heißt, und nicht idpop31?
Weil, idpop3 ist gleichzeitig der Name von der Unit, wo die Komponente definiert ist. Somit kann Delphi das nicht auseinander halten.
Nenn deine Komponente um und gut ist.


Dude566 - Mo 02.02.09 20:41

Das Programm startet jetzt, und es stürtzt viel später ab. ^^

Aber versenden will es immer noch nicht:
user defined image

Was bedeutet denn die Meldung?


Xentar - Di 03.02.09 14:02

Hack mal 10051 in die Suchmaschine deiner Wahl.
Aber im Text steht doch schon der Fehler: Das Netzwerk ist nicht erreichbar.
Vllt. hast du während des Testens keine Internetverbindung, dich bei der IP vertippt, kA.


Dude566 - Di 03.02.09 14:23

Ok habe jetzt mal nach dem Fehler 10051 gesucht, und verstehe das ganze nicht.

Wieso kann denn jetzt aufeinmal die Verbindung nicht hergestellt werden, es ging doch vorher?

http://support.ipswitch.com/kb/WSK-19980714-EM17.htm


Xentar - Di 03.02.09 14:25

Zeig mal den gesamten Quellcode..


Dude566 - Di 03.02.09 15:21


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Edit3: TEdit;
    Label3: TLabel;
    GroupBox3: TGroupBox;
    Edit4: TEdit;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Memo1: TMemo;
    Image1: TImage;
    Label5: TLabel;
    Label6: TLabel;
    IdPOP31: TIdPOP3;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
const
  SMTPServer = 'smtp.web.de';
  SMTPPort = 25;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     with idMessage1 do begin
      Body.Assign(Memo1.lines);
      From.Text := Edit1.Text;
      Subject := 'Betreff';
      Recipients.EmailAddresses := Edit3.Text;
      CCList.EmailAddresses := '';
      BCCList.EmailAddresses := '';
      Priority := mpNormal;
     end;

     with idPOP31 do begin
      Username := Edit1.Text;
      Password := Edit2.Text;
      Port := 25;
      Host := 'pop3.web.de';
      try
        Connect;
      except
       ShowMessage ('Es ist ein Fehler aufgetreten');
      end;
      Disconnect;
     end;

     with idSMTP1 do begin
      Username := Edit1.Text;
      Password := Edit2.Text;
      Port := SMTPPort;
      Host := SMTPServer;
      try
        Connect;
        Send (idMessage1);
      except
       ShowMessage ('Es ist ein Fehler aufgetreten');
      end;
      Disconnect;
     end;
end;

end.


jaenicke - Di 03.02.09 15:24

Hat POP3 (zumindest bei web.de) nicht Port 110?


Dude566 - Di 03.02.09 16:08

Scheinbar lags wirklich am falschen Port, habe es ausprobiert und es läuft ohne Probleme.

Danke für die Hilfe!


Dude566 - Sa 07.02.09 17:53

Wie erstelle ich denn so ein Button?

user defined image

Also wenn man drauf klickt erscheint darunter so ein Menü wo ich dann wieder Radiobuttons einbauen möchte.

Wie gehts?


Xentar - Sa 07.02.09 18:03

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Wie erstelle ich denn so ein Button?

user defined image

Also wenn man drauf klickt erscheint darunter so ein Menü wo ich dann wieder Radiobuttons einbauen möchte.

Wie gehts?

Was hat das noch mit dem Thema "EMail versenden" zu tun? Nur, weil es bei dir im gleichen Programm verwendet werden soll..?
Neue Frage -> neues Thema.

- Formulargröße anpassen
- Neue Komponenten einblenden


Dude566 - Sa 07.02.09 18:11

Sorry, ich dachte man muss ja nicht extra einen Thread erstellen. :roll: