Autor |
Beitrag |
GURKE deluxe
Beiträge: 91
Erhaltene Danke: 1
Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
|
Verfasst: So 28.11.10 17:54
Hallo,
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| string Fehlerbericht = "ABC";
SmtpClient smtp = new SmtpClient(); MailAddress from = new MailAddress("X"); MailAddress to = new MailAddress("Y"); MailMessage mes = new MailMessage(from.Address, to.Address, "Fehlerbericht", Fehlerbericht); smtp.Host = "smtp.web.de"; System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(); credentials.Password = "Passwort"; credentials.UserName = "SendeE-Mail-Adresse"; smtp.Credentials = credentials; smtp.Send(mes); |
Normal steht natürlich in Fehlerbericht was anderes, aber das ist hier ja unwichtig. Die E-Mail-Adressen sind korrekt und funktionieren (geprüft!). Internet habe ich auch.
Und trotzdem bekomme ich folgende Fehlermeldung:
Visual C# hat folgendes geschrieben: | Syntaxfehler in Parametern oder Argumenten. Die Serverantwort war: Keine Authentifizierung, oder POP3-Anmeldung zu weit in der Vergangenheit . / Authentification failed, or POP3 logon too old. |
Interessanter Weise funktioniert es manchmal, manchmal beim zweiten Versuch, wenn ich beim Debuggen den Code nochmal durchgehen lasse und manchmal gehts gar nicht.
Was mache ich noch falsch?
In Hoffnung mir helfen zu können
Julian
|
|
Greenberet
Beiträge: 339
Erhaltene Danke: 20
Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
|
Verfasst: So 28.11.10 18:31
Wenn ich "telnet smtp.web.de 25" ausführe, dann bekomm ich die gleiche Fehlermeldung wenn ich versuche eine Mail zu schicken ohne mich zu Authentifizieren.
Starte mal Wireshark und schau nach was wirklich gesendet wird.
|
|
Trashkid2000
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: So 28.11.10 19:03
Hallo,
GURKE deluxe hat folgendes geschrieben : | Die E-Mail-Adressen sind korrekt und funktionieren (geprüft!). Internet habe ich auch. Und trotzdem bekomme ich folgende Fehlermeldung:
Visual C# hat folgendes geschrieben: | Syntaxfehler in Parametern oder Argumenten. Die Serverantwort war: Keine Authentifizierung, oder POP3-Anmeldung zu weit in der Vergangenheit . / Authentification failed, or POP3 logon too old. |
|
Also ich finde die Fehlermeldung ziemlich aussagekräftig. Der Server verlangt, dass Du Dich vor dem Mailversand per POP3 anmeldest. Dass bedeutet, dass Du also erstmal per POP3 mails abrufen musst, und dann per SMTP mails senden kannst ("POP3 vor SMTP").Und das ist auch der Grund, warum es manchmal geht, und manchmal halt nicht. Du hast warscheinlich, als es mal über das Programm funktioniert hat, mit deinem E-Mail-Programm mails abgerufen!?
Aber habe gelesen, dass Web.de auch SMTP-Authentifizierung unterstützt. Habe mal einen Beitrag über SMTP-Authentifizierung rausgefischt: www.mycsharp.de/wbb2...ad.php?postid=275822
Marko
Für diesen Beitrag haben gedankt: GURKE deluxe
|
|
GURKE deluxe
Beiträge: 91
Erhaltene Danke: 1
Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
|
Verfasst: So 28.11.10 21:51
Ich bin deinem Link gefolgt und habe mich an die Lösung des einem gemacht:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| MailAddress from = new MailAddress("Absender"); MailAddress to = new MailAddress("Empfänger"); MailMessage email = new MailMessage(from, to);
email.Subject = "Funktionstest"; email.Body = "Funktion OK";
SmtpClient client = new SmtpClient("SMTP");
NetworkCredential netCredentials = new NetworkCredential(); netCredentials.UserName = "Absender"; netCredentials.Password = "Absender Passwort";
client.Credentials = netCredentials;
client.EnableSsl = true; |
Allerdings kommt da nur der Fehler:
C# hat folgendes geschrieben: | Fehler beim Senden von Mail. |
Ist das jetzt der selbe Fehler nur anders ausgedrückt?
Gruß
Julian
|
|
Trashkid2000
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Mo 29.11.10 09:38
Hallo,
C#-Quelltext 1:
| SmtpClient client = new SmtpClient("SMTP"); |
Hier muss doch eigentlich die Addresse von SMTP-Server angegeben werden!
C#-Quelltext 1:
| client.EnableSsl = true; |
Wenn der Client über SSL kommunizieren soll, musst Du Dich um das Handling mit den Zertifikaten kümmern.
Link dazu: msdn.microsoft.com/d...lient.enablessl.aspx
GURKE deluxe hat folgendes geschrieben : | Ist das jetzt der selbe Fehler nur anders ausgedrückt?
|
Gute Frage, was steht denn in der Exception, die beim Senden auftritt? Ich meine in der InnerException!
Aber ich glaube, so müsste es gehen:
C#-Quelltext 1: 2: 3:
| smtpClient.EnableSsl = false; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential("username", "password"); | Erklärung dazu: msdn.microsoft.com/d...aultcredentials.aspx
LG, Marko
Für diesen Beitrag haben gedankt: GURKE deluxe
|
|
GURKE deluxe
Beiträge: 91
Erhaltene Danke: 1
Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
|
Verfasst: Mo 29.11.10 18:34
Hallo Marko,
Trashkid2000 hat folgendes geschrieben : | C#-Quelltext 1:
| SmtpClient client = new SmtpClient("SMTP"); |
Hier muss doch eigentlich die Addresse von SMTP-Server angegeben werden!
C#-Quelltext 1:
| client.EnableSsl = true; |
Wenn der Client über SSL kommunizieren soll, musst Du Dich um das Handling mit den Zertifikaten kümmern.
Aber ich glaube, so müsste es gehen:
C#-Quelltext 1: 2: 3:
| smtpClient.EnableSsl = false; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential("username", "password"); | Erklärung dazu: msdn.microsoft.com/d...aultcredentials.aspx
LG, Marko |
Ich danke dir für deine Geduld aber irgendwie bekomm ichs nicht hin
Ich habe jetzt folgendes:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| MailAddress from = new MailAddress("Sender@web.de"); MailAddress to = new MailAddress("Empfänger@web.de"); MailMessage email = new MailMessage(from, to);
email.Subject = "Funktionstest"; email.Body = "Funktion OK";
SmtpClient client = new SmtpClient("smtp.web.de"); client.EnableSsl = false; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("Sender@web.de", "SenderPasswort");
client.Send(email); |
Nu kommt die Fehlermeldung:
C# hat folgendes geschrieben: | System.Net.Mail.SmtpException wurde nicht behandelt.
Message=Syntaxfehler in Parametern oder Argumenten. Die Serverantwort war: Keine Authentifizierung, oder POP3-Anmeldung zu weit in der Vergangenheit . / Authentification failed, or POP3 logon too old.
Source=System
StackTrace:
bei System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
bei System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
bei System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
bei System.Net.Mail.SmtpClient.Send(MailMessage message)
bei WindowsFormsApplication1.fVerschlüsselung.EMailSenden()
bei WindowsFormsApplication1.fVerschlüsselung.button1_Click_1(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei WindowsFormsApplication1.Program.Main()
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException: |
Das ist die ganze Fehlermeldung, die gleiche wie am Anfang... allerdings hilft mir das jetzt nicht direkt weiter Muss ich dennoch noch was mit pop3 angeben? Sowas wie:
"pop3.web.de"
Gruß
Julian
|
|
Trashkid2000
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Mo 29.11.10 20:54
Hallo!
GURKE deluxe hat folgendes geschrieben : | Ich danke dir für deine Geduld aber irgendwie bekomm ichs nicht hin |
Ja, bin ein ziemlich geduldiger Mensch. Aber wenn ich merke, dass irgendwas nicht klappt (oder wenn mich etwas zu Tode nervt), dann wird das mal ganz locker auf den nächsten Tag verschoben. Weiss nicht, was ich sagen soll. Ich habe das Ganze mal über meine Web.de-Adresse und meine GMX-Adresse getestet. Und bei Web habe ich mich extra vorher nicht per POP angemeldet. Also den Code, den Du zuletzt gepostet hast funktioniert bei mir ohne Probleme. Beide Provider haben erfolgreich darauf reagiert. Soll heißen, die mail wird ohne Fehlermeldung verschickt und kommt auch an. Ich meine, die Authentifizierung am Server ist ja auch okay!
Muss zugeben, dass ich auch erst Deine Fehlermeldung bekommen habe, aber nur, weil das Passwort falsch war
Bist Du Dir wirklich sicher, dass Passwort sowie Benutzername stimmen?
Marko
Für diesen Beitrag haben gedankt: GURKE deluxe
|
|
GURKE deluxe
Beiträge: 91
Erhaltene Danke: 1
Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
|
Verfasst: Di 30.11.10 00:39
Hallo Marko,
Ich habe alles nochmal eingegeben und Benutzernamen wie Passwörter getestet, dabei viel mir auf, das mein Passwort unteranderem das durchgestrichene O hatte (es war ein generiertes). Ich habe das ganze mal mit einem anderen Account (und "normalem" Passwort") getestet und es lief einwandfrei
Danke nochmals für deine Hilfe und Geduld!!
Gerhard Uhlenbruck hat folgendes geschrieben: | Geduld ist das Ausdauertraining für die Hoffnung! - Gerhard Uhlenbruck |
Gruß
Julian
|
|
Trashkid2000
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Di 30.11.10 08:06
Schön, dass es nun klappt. Hätte mich jetzt auch echt gewundert!
Ist halt doof, dass die Exception nicht genau definiert, dass die Anmeldung fehlgeschlagen ist.
Aber selbst mit einem Passwort mit kryptischen Zeichen drin muss es funktionieren
Du meinst das Zeichen, oder: Ø ?
Marko
|
|
GURKE deluxe
Beiträge: 91
Erhaltene Danke: 1
Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
|
Verfasst: Mi 01.12.10 15:30
Trashkid2000 hat folgendes geschrieben : | Schön, dass es nun klappt. Hätte mich jetzt auch echt gewundert!
Ist halt doof, dass die Exception nicht genau definiert, dass die Anmeldung fehlgeschlagen ist.
Aber selbst mit einem Passwort mit kryptischen Zeichen drin muss es funktionieren
Du meinst das Zeichen, oder: Ø ?
Marko |
jo genau das, interessanter Weise ging es gestern wieder nicht. Nun habe ich erstmal ein anderen Account genommen, bei dem gehts wieder Übrigens heute immernoch^^
Gruß
Julian
|
|
|