Autor Beitrag
Jimbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Mo 03.03.03 15:19 
Hallo,
ich muß als Hausaufgabe ein Mailprogramm schreiben und soll mich dabei an die FastNet-Komponenten halten.
POP3 funktioniert einwandfrei, die Mails werden auf der Festplatte gespeichert, etc...

Ich bekomme es aber einfach nicht gebacken eine Mail zu verschicken.
Mein Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  SMTP.Host := esmhost.text;
  SMTP.Port := 25;
  SMTP.UserID := eusername.text;
  SMTP.Connect;        

  SMTP.PostMessage.FromAddress := eusername.text;
  SMTP.PostMessage.FromName    := eusername.text;
  SMTP.PostMessage.ToAddress.Add(eempfaenger.text);
  SMTP.PostMessage.Body.Assign(nachricht);
  SMTP.PostMessage.Subject := ebetreff.text;
  SMTP.SendMail;
  SMTP.Disconnect;

Meine Fehlermeldung:
Die Autentifizierung ist fehgeschlagen

Wo liegt der Fehler?

Gruß
Jimbo


Zuletzt bearbeitet von Jimbo am Di 04.03.03 15:01, 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 03.03.03 18:22 
Titel: HI
Das Senden von EMails sollte durch das ONConnect() Ereignis der SMTP-Komponente erst ausgelöst werden. Ansonsten gibts Schwierigkeiten. So hintereinander gehts nicht.

Zweitens kanns sein, das der Provider SMTP after Pop benutzt, du musst dich also erst mal via Pop verbinden/anmelden und dann ist erst SMTP erlaubt.

ein kleines Demo:

ausblenden 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:
procedure TSendmail.BitBtn1Click(Sender: TObject);
var I:Integer;
begin
  Mailer.Host:= Host;
  Mailer.UserID:= User;
  for I:=0 to Empfaenger.Items.Count-1 do
    Mailer.PostMessage.ToAddress.Add(Empfaenger.Items[i]);
  Mailer.PostMessage.FromAddress:= From;
  Mailer.PostMessage.FromName:='MeinName';
  Mailer.PostMessage.Subject:= Subjekt;
  Mailer.PostMessage.Date:=DateToStr(now);
  Mailer.PostMessage.ReplyTo:= from;
  for I:=0 to Content.Lines.Count-1 do
    Mailer.PostMessage.Body.Add(Content.Lines[i]);
  Mailer.Connect;
end;

procedure TSendmail.MailerConnect(Sender: TObject);
begin
  Mailer.SendMail;
end;

procedure TSendmail.MailerSuccess(Sender: TObject);
begin
  Mailer.Disconnect;
end;


mfg
MSCH
Jimbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 04.03.03 15:08 
@ MSCH
ich habe das Ganze jetzt umgeschrieben:
ausblenden volle Höhe 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:
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
 meldungen.lines.add('Try to connect');
 pop3.UserID := eusername.text;
 pop3.Password := epass.text;
 pop3.AttachFilePath := 'attach/';
 pop3.Host := ehost.text;
 pop3.TimeOut := 200000;
 pop3.connect;
if sende = true then begin
 meldungen.lines.add('Try to connect');
  SMTP.Host := esmhost.text;
  SMTP.Port := 25;
  SMTP.UserID := eusername.text;

 // SMTP.Port := 25;
 // SMTP.Connect;
  SMTP.PostMessage.Date:=DateToStr(now);
  SMTP.PostMessage.FromAddress := eusername.text;
  SMTP.PostMessage.FromName    := eusername.text;
  SMTP.PostMessage.ReplyTo     := eusername.text;
  SMTP.PostMessage.ToAddress.Add(eempfaenger.text);
  SMTP.PostMessage.Body.Assign(nachricht.lines);
  SMTP.PostMessage.Subject := ebetreff.text;
  SMTP.Connect;
  sende := false;
end;
end;


procedure TForm1.SMTPConnect(Sender: TObject);
begin
SMTP.SendMail;
meldungen.lines.add('Connected');
end;


procedure TForm1.SMTPSuccess(Sender: TObject);
begin
smtp.disconnect;
meldungen.lines.add('Nachrich(en) erfolgreich versandt.');
end;


leider erhalte ich folgende Fehlermeldung: Die Authentifizierung ist fehlgeschlagen.

Was bedeutet das überhaupt?
Wo liegt mein Failer?

Gruß
Jimbo
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 04.03.03 16:56 
Hallo,
Jimbo hat folgendes geschrieben:
leider erhalte ich folgende Fehlermeldung: Die Authentifizierung ist fehlgeschlagen.
Was bedeutet das überhaupt?
Wo liegt mein Failer?

das bedeutet, das der SMTP Server nicht bestätigen kann, das du berechtigt bist über ihn zu senden.
Früher konnte jeder einfach so über jeden Mail-Server senden ohne sich identifizieren zu müssen. Als dann das Internet immer beliebter wurde und somit auch die Spamer immer häufiger auftraten hat man versucht dieses Manko durch das vorherige abrufen der E-Mail auf dem POP3 Server zu beheben. Das ist das ober beschriebende POP vor SMTP. Die war aber immer nur eine notlösung. Mitlerweile ist es schon wieder Jahre her, das der neue SMTP-Standart verabschiedet wurde, welcher eine möglichkeit für SMTP mit Passwort und Username bieten (SMTP Auth oder auch SMTP mit Login). Da der Standart mitlerweile schon älter ist gehen viele Provider in letzter Zeit dazu über diesen auch zu verwenden, ich schätze der über den du senden willst gehört dazu. Ich weiß nciht wie die Fastnetkomponenten heute aussehen, die letzen mit denen ich gearbeitet habe (Delphi 5) unterstützen diese Möglichkeit noch nicht. Wenn sie das heute nopch nicht bieten kann man sie nur als veraltet bezeichnen und sich nach einer alternative unsehen (Indy, ICS, ...?).

Wenn das nicht möglich ist, musst du einen Mailproxy vorschalten, der diese Sicherheitsmechanismen beherscht, sie lokal aber nicht verlangt.

Gruß
Klabautermann
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Di 04.03.03 17:09 
soweit ich weiss gehört zu den meisten Anmeldungen auch nen PW ... ich konnte in deinem Quelltext nix davon finden ... ich denke mal das das DER Fehler is ...

MfG BungeeBug
Jimbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 04.03.03 20:13 
das problem ist, dass ich für die schule an delphi 5 professional gebunden bin.

sollte ich das dann wie mit der konsole machen (telnet) ?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 04.03.03 20:26 
Hallo,

wer ist denn dein Provider?
Bei einigen (z.B. GMX) kann man den Sicherheitsmechanismus einstellen. Dann kannst du dein Programm für POP vor SMTP fertigstellen und beschwerst dich bei der Abgabe, das dich die veralteten Komponenten davon abgehalten haben ein Zeitgemäßes Mailprogramm zu schreiben ;).

Oder du versuchst deine Lehrer zu überzeugen die Indys dazu zu installieren.

Gruß
Klabautermann
Jimbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 04.03.03 20:57 
Hi,

ich hab Web.de, allerdings wird das Prog warscheinlich auch auf meiner Adresse beim Schul-Server getestet werden müssen...

jahmm...ich habs ja mit Pop vor Smtp versucht, aber ich bekomm's einfach nich hin..und eben deshalb würd' ich lieber PROGRAMMIEREN lernen...und nicht das Komponenten-Anwenden...dann könnte ich jetzt nämlich alles so laufen lassen, wie's zeitgemäß ist...

erstmal muß ich das prog für meinen Account bei Web.de zum laufen bringen, aber da kommt halt auch bei POP vor SMTP der Fehler und mit der Komponente kann ich kein Passwort festlegen...............
mars
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Di 04.03.03 21:24 
Jimbo hat folgendes geschrieben:

und eben deshalb würd' ich lieber PROGRAMMIEREN lernen...und nicht das Komponenten-Anwenden


Also, dann müsstest du dich erst mal mit den verschiedensten Protokollen auseinandersetzen...Viel Spass dabei! :wink:
Jimbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 04.03.03 21:43 
gut möglich, aber ich meine, dass man mit den komponenten nicht weit kommen kann.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 05.03.03 13:21 
Hallo,

Komponenten erleichtern das Arbeiten ungemein. Aber nur, weil sie einem die Arbeit abnehmen nicht weil sie etwas machen was man nicht auch selbst ereichenen könnte.

Aber es ist schon klar, das man sich dann auch an den Hersteller bindet und eben nur das machen kann was dieser anbietet.

Leider hast du wohl im moment keine Wahl, es sei denn du möchtest tatsächlich die Komunikation von Hand implementieren. Das sollte Machbar sein da SMTP ein recht kleiner Standart ist. Dennoch bedeutet es eine Menge mehr Arbeit.

Gruß
Klabautermann