Autor Beitrag
Akut-Programming
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Mo 18.08.03 12:31 
Ma noch n Thread von mir!

Hab jetzt herausgefunden, warum ich keine Verbindung zum smtp Server bekomme. Ich muss noch über n Proxy kommen. Nur leider hab ich bei meinen Indy9 Kompos keine Proxy Komponente gefunden. Gibts die Möglichkeit mit den Indys überhaupt!?

_________________
Gruß,
Akut - Programming


Zuletzt bearbeitet von Akut-Programming am Di 19.08.03 10:47, insgesamt 1-mal bearbeitet
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mo 18.08.03 21:52 
Sprech doch den Proxy direkt statt dem SMTP Server an.
grez
msch
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Di 19.08.03 07:48 
Moin!

MSCH hat folgendes geschrieben:
Sprech doch den Proxy direkt statt dem SMTP Server an.


:?: Wie meinst du das? So wie ich das jetzt verstehe, meinst du ich sollte anstatt den SMTP Server über den die Mails versendet werden sollen (in meinem Fall sollte dies über GMX geschehen), den Proxy einzutragen?

:lol: Mein Anliegen: :lol:

Ich will ein Programm schreiben, das die Mails des internen Mailservers abholt und diese dann über einen anderen account (z.B. GMX) wieder versendet. DAS MUSS DOCH MÖGLICH SEIN

_________________
Gruß,
Akut - Programming
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Di 19.08.03 09:09 
Also hab da jetzt ma noch n bissl probiert! Aber es will nich so wie ich will. Ich hab mir ma n bissl Code..da könnters euch ma angucken!


unit1--->Zeigt Startfenster und führt ersten durchlauf aus
ausblenden volle Höhe 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:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    ed_start: TButton;
    ed_end: TButton;
    Label1: TLabel;
    procedure ed_startClick(Sender: TObject);
    procedure ed_endClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.DFM}

procedure TForm1.ed_startClick(Sender: TObject);
var i: integer;
begin
     Form2.Show;
     Form1.Hide;

     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'Anwendung gestartet');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');

     Form2.IdPOP31.Connect;
     Form2.Label3.Caption:=IntToStr(Form2.IdPOP31.CheckMessages);

     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'Neue Mails: '+IntToStr(Form2.IdPOP31.CheckMessages)+'');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');

//Start --> Mails abholen und versenden

  for i:=0 to Form2.IdPOP31.CheckMessages do
    begin
     Form2.IdPOP31.Retrieve(i, Form2.IdMessage1);
      Form2.IdSMTP1.Connect;
       try
        form2.IdSMTP1.Send(Form2.IdMessage1);
       finally
        form2.IdSMTP1.Disconnect;
        Form2.Timer1.Enabled:=True;
       end;
    end;
end;
//Ende --> Mails abholen und versenden

procedure TForm1.ed_endClick(Sender: TObject);
begin
     Form1.Close;
end;


unit2--->Prog Arbeitet nun durch Timer in gewissen Zeitabständen
ausblenden volle Höhe 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:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IdMailBox, IdBaseComponent, IdNetworkCalculator, StdCtrls, ExtCtrls,
  IdMessage, IdSMTP, IdComponent, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdPOP3, IdIntercept, IdLogBase, IdLogFile,
  IdMessageCoder, IdMessageCoderMIME, IdAntiFreezeBase, IdAntiFreeze,
  IdHTTP, ScktComp;
type
  TForm2 = class(TForm)
    Label1: TLabel;
    ed_logfile: TButton;
    ed_beenden: TButton;
    IdPOP31: TIdPOP3;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Bevel1: TBevel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    IdAntiFreeze1: TIdAntiFreeze;
    Timer1: TTimer;
    procedure ed_logfileClick(Sender: TObject);
    procedure ed_beendenClick(Sender: TObject);
    procedure IdPOP31Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    procedure IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

uses Unit1, Unit3;

{$R *.DFM}

procedure TForm2.ed_logfileClick(Sender: TObject);
begin
     Form3.Show;
end;

procedure TForm2.ed_beendenClick(Sender: TObject);
begin
     IdPOP31.Disconnect;
     IdSMTP1.Disconnect;
     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'Anwendung beendet');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');
     Form1.Close;
end;

procedure TForm2.IdPOP31Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
     Label4.Caption:=AStatusText;
     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'pop3 - Status: '+AStatusText+'');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');
end;


procedure TForm2.IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
     Label4.Caption:=AStatusText;
     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'SMTP - Status: '+AStatusText+'');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');
end;


procedure TForm2.Timer1Timer(Sender: TObject);
var i:integer;
begin
     IdPOP31.Disconnect;
     IdPOP31.Connect;
     Label3.Caption:=IntToStr(Form2.IdPOP31.CheckMessages);

     Form3.Memo1.Lines.Add(DateToStr(Now)+' '+TimeToStr(NOW)+' '+'Neue Mails: '+IntToStr(Form2.IdPOP31.CheckMessages)+'');
     Form3.Memo1.Lines.Add('');
     Form3.Memo1.Lines.SaveToFile('logfile.txt');

//Start --> Mails abholen und versenden

  for i:=0 to IdPOP31.CheckMessages do
    begin
     IdPOP31.Retrieve(i, IdMessage1);
      IdSMTP1.Connect;
       try
        IdSMTP1.Send(IdMessage1);
       finally
        IdSMTP1.Disconnect;
       end;
    end;
//Ende --> Mails abholen und versenden
end;

------------------------------------------------------------------------
Wenn ich dies so mache, bekomme ich da ich über einen Proxy muss, immer die Meldung "Connection Timeout". Versteht ihr mein Anliegen? Liege ich mit dem Source daneben???

_________________
Gruß,
Akut - Programming
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Di 19.08.03 20:29 
ich glaube hier fehlt noch etwas verständnis, was ein Proxy macht. Ein SMTP-Proxy arbeitet genauso wie ein HTTP Proxy, sprich der Webbrowser fordert seine Seiten vom Proxy und nicht von der eigentlichen URL ab. Das besorgt der Proxy. Genauso verhält es sich mit einem SMTP Proxy (kann auch als Relay und Filter missbraucht werden). der Client fordert nicht mehr direkt beim Zielhost an, sondern via Proxy.

grez
msch