Entwickler-Ecke
Internet / Netzwerk - SMTP(fastnet)
Jimbo - Mo 03.03.03 15:19
Titel: SMTP(fastnet)
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:
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
MSCH - 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:
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 - Di 04.03.03 15:08
@ MSCH
ich habe das Ganze jetzt umgeschrieben:
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 - 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 - 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 - 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 - 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 - 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 - 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 - Di 04.03.03 21:43
gut möglich, aber ich meine, dass man mit den komponenten nicht weit kommen kann.
Klabautermann - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!