Entwickler-Ecke

Internet / Netzwerk - SMPT Email senden nicht möglich


Pandax3 - So 13.11.11 11:49
Titel: SMPT Email senden nicht möglich
Hallo,
ich möchte mit einem Delphi Programm Emails verschicken, jedoch funktioniert dies nicht so ganz ;(

ich benutze folgenden code, bekomme jedoch immer die meldung: SASL-Mechanismus für Anmeldung erforderlich

Ich habe bei google gesucht aber nichts gefunden >.< Zudem weiß ich nicht welchen port ich benutzen muss , ist das nicht bei verschiedenen diensten unterschiedlich? Kann es sein, dass die Fehlermeldung an Yahoo liegt?

Danke jetzt schon mal ;)


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:
function tform1.SendEmail(Recipient:string;CCList:string;sSubject:string;Body:TStringList):boolean;
begin
 idSMTP.Host   := 'smtp.mail.yahoo.de';
 idSMTP.Username := edit1.text;
 idSMTP.Password := edit2.text;
 idSMTP.Port   := 25;

 idMessage.From.text  :=edit1.text;
 idMessage.Sender.text:=idMessage.From.text;

 idMessage.Recipients.EMailAddresses:= Recipient;
 idMessage.CCList.EMailAddresses := CCList;
 idMessage.Subject:=sSubject;

 idMessage.Body.Clear;
 idMessage.Body := Body;

 try
   idSMTP.Connect;
   idSMTP.Send(idMessage);
   idSMTP.Disconnect;
   result:=True;
   except on E : Exception do
     begin
       if idSMTP.connected then try idSMTP.disconnect; except end;
       result := false;
     end;
 end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  st: TStringList;
begin
  st := TStringList.Create;
  st.Text := memo1.Lines.Text;
  form1.SendEmail(edit3.Text, '', edit5.text, st);
  st.Free;
end;


end.


HenryHux - So 13.11.11 11:57

Hey,

ich hatte ein ähnliches Problem - leider ungelöst.
Afaik verwendet Yahoo Mail die SMTP-Authentifizierung und die fehlt in deinem Code.
Hier das andere Thema : http://www.delphi-forum.de/viewtopic.php?p=653898#653898
Viel Glück!


mandras - So 13.11.11 12:06

vielleicht hilft folgendes weiter:

http://www.indyproject.org/KB/index.html?smtpauthentication.htm

http://entwickler-forum.de/archive/index.php/t-65389.html

Ich hab selber SASL noch nicht verwendet, werde es aber demnächst müssen. Die beiden Links oben waren Ergebnis meiner bisherigen Suche. Wenn ich es recht verstanden habe ist INDY10 erforderlich.


Pandax3 - So 13.11.11 12:44

hm hat mir jetzt leider nicht weitergeholfen >.<
Zitat:
Hey,

ich hatte ein ähnliches Problem - leider ungelöst.
Afaik verwendet Yahoo Mail die SMTP-Authentifizierung und die fehlt in deinem Code.
Hier das andere Thema : http://www.delphi-forum.de/....php?p=653898#653898
Viel Glück!


wer/was ist Afaik?


HenryHux - So 13.11.11 12:49

As far as I know -> Soweit ich weiß :)


LittleBen - So 13.11.11 17:47

Habe vor einem Jahr ein gut funktionierendes Programm geschrieben, mit dem es möglich war, Emails über Web.de zu versendet (IdSMTP). Als ich es gerade wieder ausgekramt und ausprobiert hab, musste ich festgestellt, dass es nicht mehr funktioniert. Haben die Leute von Web.de vielleicht etwas verändert?

Gibt es schon neue Erkenntnisse?


Pandax3 - So 13.11.11 18:07

mich würde es jetzt interessieren wie man die SMTP-Authentifizierung programmiert, das versteh ich noch nicht ganz


LittleBen - So 13.11.11 18:27

Du musst wissen, was der Host für eine Authentifizierung erwartet.
Entweder IdSMTP1.AuthenticationType := atNone; oder IdSMTP1.AuthenticationType := atLogin;.
(afaik ;))


Pandax3 - So 13.11.11 22:00

den AuthType habe ich auf satSASL - einen AuthenticationType gibt es bei mir irgendwie genauso wenig wie atNone oder atLogin ?_? kann das sein

ist der AuthType = AuthenticationType?


Delete - Mo 14.11.11 00:28

Zitat:
"An manchen Internetzugängen, insbesondere an Universitäten, in Firmennetzen, Hotels oder auch im Ausland, ist aus Spamschutzgründen der SMTP-Versand über den Port 25 gesperrt - in diesem Fall wird der E-Mail Versand geblockt. Alternativ kann hier der Versand mittels SMTP-Authentifizierung über den Port 587 verwendet werden.
Einige E-Mail-Programme verwenden bei aktiviertem SSL automatisch Port 465 – ändern Sie den Eintrag in diesem Fall manuell auf 25 oder 587."
.
"Um die E-Mails aus Ihrem Postfach bei Yahoo mit einem Mailprogramm wie Outlook Express oder Thunderbird abzuholen, müssen Sie in der E-Mailsoftware die Adressen für die richtigen Server eintragen.
Beim Yahoo Mailserver handelt es sich um einen POP3-Server. Seine Adresse lautet: pop.mail.yahoo.de
Um die Mail über Yahoo zu verschicken müssen Sie den folgenden Server als SMTP-Server angeben: smtp.mail.yahoo.de
Bei beiden Servern müssen Sie sich mit Ihrem Yahoo-Namen (das ist Ihre Yahoo-Mailadresse bis zum @ Zeichen) und Ihrem Kennwort authentifizieren.
Damit Sie Ihre Mail bei Yahoo mit einem E-Mail-Programm abrufen können müssen Sie allerdings Mitglied bei Yahoo!Direkt sein und Ihren Account unter Optionen/POP-Zugriff und Weiterleitung so konfiguriert haben, dass Sie Ihren Account mit einem Mail-Programm abrufen können."


Pandax3 - Mo 14.11.11 11:01

den port hab ich geändert - Fehlermeldung bleibt


baka0815 - Mo 14.11.11 12:58

Du hast den Authentifizierungsmodus ja explizit auf SASL gesetzt, dann musst du auch SASL entsprechend einbinden.

Versuch den Modus mal auf atNone oder atDefault (zu finden in IdSMTP.pas) zu setzen.
Wenn du SASL verwenden willst: http://lmgtfy.com/?q=IdSMTP+SASL


Stread - Mo 14.11.11 13:25

Gibt es denn eine Lösung mit dem web.de Problem?
ich kann bei meinem e-mail Programm über Gmail senden, jedoch nicht über web.de


Delete - Mo 14.11.11 13:33

SMTP ist bei GMAIL kostenlos, bei WEB.DE kostet es 5 EURO im Monat.


Stread - Mo 14.11.11 15:03

Sicher nicht! Ich kann über Outlook super e-mail senden und empfangen über kostenloses Web.de


Delete - Mo 14.11.11 17:19

Sorry, habe es verwechselt mit IMAP.

IMAP (IMAP4) steht exklusiv WEB.DE Club-Mitgliedern zur Verfügung. Via IMAP können Sie mit einem Programm Ihrer Wahl in Echtzeit auf Ihr Postfach zugreifen, sämtliche Aktionen (E-Mail löschen, verschieben etc.) werden dabei direkt auf dem Server ausgeführt.

Moderiert von user profile iconNarses: Beiträge zusammengefasst

user profile iconStread hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es denn eine Lösung mit dem web.de Problem?
ich kann bei meinem e-mail Programm über Gmail senden, jedoch nicht über web.de


Beschreibe das Problem mal etwas genauer!


Stread - Mo 14.11.11 17:32

Ich kann(wie schon gesagt) mit meinem Programm schon E-Mails über Googlemail versenden.
Wie von Gmail gewünscht über Auth SMTP und TLS. In Delphi mit IdSSLIOHandlerSocketOpenSSL1

Wenn ich das gleiche nun bei web.de probiere scheitere ich an einem SMTPReplyError mit der Meldung Sytax Error und es stoppt vor SMTP1.Send


Pandax3 - Di 15.11.11 15:14

Zitat:
Du hast den Authentifizierungsmodus ja explizit auf SASL gesetzt, dann musst du auch SASL entsprechend einbinden.

Versuch den Modus mal auf atNone oder atDefault (zu finden in IdSMTP.pas) zu setzen.
Wenn du SASL verwenden willst: lmgtfy.com/?q=IdSMTP+SASL


so ich habe jetzt auf atDefault gestellt und es funktioniert tatsächlich mit Yahoo.
nun würde ich natürlich auch gerne SASL verwenden habe auch schon reichlich gegooglet, allerdings nichts gefunden - Hilfe ;) ;) ;)


baka0815 - Mo 21.11.11 15:26

Es kann natürlich auch sein, dass Web.de SASL auch nur zahlenden Kunden anbietet (bei GMX zum Beispiel ist das so) und es deswegen nicht funktioniert.
Warum dann jedoch ein Syntax-Fehler gemeldet wird, keine Ahnung.


Stread - Mo 21.11.11 18:18

Man müsste rausbekommen wie Outlook das regelt. Denn da geht es anscheinend fehlerfrei.