nubbeldupp Geschrieben 2. August 2010 Geschrieben 2. August 2010 (bearbeitet) Folgendes Problem... Ich möchte mit einem Programm in regelmäßigen abständen eine Mail versenden mit einem Log... Ich habe schon diverse Anleitungen (jeder schreit es iwie anders) durchforstet aber irgendwie hängt es sich immer bei "client.Send(message);" auf und macht nicht mehr weiter... using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Mail; using System.Net; using System.Net.Sockets; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { MailAddress from = new MailAddress("xxx@gmx.com", "xxx"); SmtpClient client = new SmtpClient("mail.gmx.net"); //Maileinstellungen MailAddress to = new MailAddress("xxx", "xxx"); MailMessage message = new MailMessage(from, to); message.Subject = "Using the SmtpClient class."; message.Body = @"Using this feature, you can send an e-mail message from an application very easily."; //SMTP-Client client.EnableSsl = true; client.Port = 465; client.Credentials = new NetworkCredential("xxx", "xxx"); Console.WriteLine("Sending an e-mail message to {0} by using the SMTP host {1}.", to.Address, client.Host); try { client.Send(message); } catch (Exception ex) { Console.WriteLine("Exception caught in CreateCopyMessage(): {0}", ex.ToString()); } } } } PS: Das Attachement ist hier nicht drin, weil dies ein extra Programm ist in dem ich versuche einfach mal ne Mail raus zu bekommen xD .:Edith:. PUHHHHH vergessen Nutzer und PW aus Code zu löschen xD Bearbeitet 2. August 2010 von nubbeldupp Zitieren
Hahne Geschrieben 2. August 2010 Geschrieben 2. August 2010 (bearbeitet) Moin, also ich habe jetzt gerade vor kurzen diese Klasse in einer Webanwendung gebraucht und bei mir sieht der Sourcecode folgendermaßen aus: SmtpClient _smtp = new SmtpClient(localhost, 25); MailAddress _sender = new MailAddress("no-reply@foo.de", "No-Reply System", System.Text.Encoding.UTF8); MailAddress _receiver = new MailAddress("empfänger@bar.de); MailMessage _message = new MailMessage(_sender, _receiver); _message.Body = "Hier kommt die Nachricht rein..."; _message.Subject = "Ich bin der Titel"; _message.IsBodyHtml = true; _smtp.Send(_message); Dieses Sourcecode setzt natürlich voraus, dass der SMTP Server Dienst auch auf dem Server läuft wo die Webanwendung liegt. Solltest du einen anderen Server als "Localhost" angeben und der Benutzerdaten benötigt kannst du diese ganz einfach mit folgenden Zeilen hinzufügen: System.Net.NetworkCredential _credentials = new System.Net.NetworkCredential("User","Passwort"); _smtp.Credentials = _credentials; Aber ich erkenne so direkt jetzt keinen Fehler in deinem Sourcecode. Versuch die Email mal ohne SSL zu verschicken. Bearbeitet 2. August 2010 von Hahne Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 Hi, und danke erstmal für deine Antwort. Was mir jetzt grade auffällt ist, dass ich "_smtp.Credentials = _credentials;" nicht drin habe... vllt hilft das ja weiter... ich werde es auf jedenfall mal testen xD Bericht erfolgt gleich Solltest du einen anderen Server als "Localhost" angeben und der Benutzerdaten benötigt kannst du diese ganz einfach mit folgenden Zeilen hinzufügen: System.Net.NetworkCredential _credentials = new System.Net.NetworkCredential("User","Passwort"); _smtp.Credentials = _credentials; Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 (bearbeitet) OK hat nicht geklappt... Er kommt einfach nicht über das senden hinaus... Habe es auch ohne SSL versucht, funktioniert auch nicht... ich glaube auch, dass der Port 25 hier gesperrt ist und deswegen gehe ich über SSL + Port 465 Muss bei den "NetworkCredential"'s evtl noch die Domain rein? ist mir grad mal am Haltepunkt aufgefallen, das dort nix steht Bearbeitet 2. August 2010 von nubbeldupp Zitieren
Hahne Geschrieben 2. August 2010 Geschrieben 2. August 2010 Erhälst du eine Fehlermeldung? Wenn ja was sagt die aus? Steht ggf. etwas in den Win-Logs? Zitieren
Hahne Geschrieben 2. August 2010 Geschrieben 2. August 2010 Setze bitte nochmal die beiden Variablen: _SmtpServer.Timeout = 5000; _SmtpServer.UseDefaultCredentials = false; Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 (bearbeitet) Erhälst du eine Fehlermeldung? Wenn ja was sagt die aus? Steht ggf. etwas in den Win-Logs? Keine Fehlermeldung... der hängt einfach und macht nicht mehr weiter... Logs kann ich mal schauen... Grade am Heltepunkt entdeckt: Address: "client.ServicePoint.Address" hat eine Ausnahme vom Typ "System.NotSupportedException" verursacht. System.Uri {System.NotSupportedException} base: {"Diese Eigenschaft wird nicht für Protokolle unterstützt, die keinen URI verwenden."} System.SystemException {System.NotSupportedException} Habe den Timeout mal auf 5000 gestellt... brngt leider nix... und sobald ich credentials festlege sind die defaults automatisch auf false Bearbeitet 2. August 2010 von nubbeldupp Zitieren
Gateway_man Geschrieben 2. August 2010 Geschrieben 2. August 2010 @ TE Wenn du die Property SSL auf True setzt muss das der SMTP Server unterstützten. GMX unterstützt dieses nicht. Zudem muss bei Port der Port angegeben werden auf dem der Ziel SMTP Server läuft (Standart bei unverschlüsselten Verbindungen 25): link 1 link 2 lg Gateway Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 Wie funktioniert SMTP mit SSL? Viele E-Mail-Programme unterstützen die Funktion der sicheren Datenübertragung beim Versand über den SMTP-Server. Als Port-Nummer für die sichere Datenübertragung verwenden Sie bitte 25 oder 465. Stellen Sie in Ihrem E-Mail-Programm an der entsprechenden Stelle die notwendigen Daten ein. Einige E-Mail-Programme verwenden bei aktiviertem SSL automatisch Port 465. Zitat aus den GMX FAQs ... also wenn die es dort schon drin stehen haben, dann sollte es doch auch funktionieren oder? xD Zitieren
Gateway_man Geschrieben 2. August 2010 Geschrieben 2. August 2010 Also für FreeUser war es meiner Meinung nach nicht verfügbar... Ich glaube was du meinst ist der Login. Ja beim Login werden scheinbar die Daten per ssl verschlüsselt. Aber nicht der Mailtransfer. Ich habe vor geraumer Zeit nen E-Mail Client geschrieben (SMTP, IMAP, POP3). Und ich bin mir sicher das ich es speziell bei gmx ohne SSL gemacht habe, da es mit bei kostenlosen Accounts (gibt ja noch die Premium Mitgliedschaft) nicht ging. Und das Programm nutze ich täglich um Mails zu senden und zu empfangen ...... =gmx]klick mich Ein GMX-Sprecher bestätigte die Angaben gegenüber Golem.de. "Grundsätzlich stimmen die Dinge zum Teil", sagte er. "Derzeit haben wir keinen verschlüsselten Webdienst bei GMX im Freemailbereich." lg Gateway Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 Ok... danke für den Hinweis und zum Glück habe ich das Postfach nur zum testen eingerichtet und es gehen keine "produktiven" Sachen da drüber xD Aber trotz allem funktioniert es nicht Ich versuche es jetzt schon seit knapp ner Woche das zum laufen zu bringen xD Zitieren
lupo49 Geschrieben 2. August 2010 Geschrieben 2. August 2010 Versuch das zunächst erstmal an einen lokalen Mailserver zu senden. D.h. trag bei SMTP-Client localhost ein. Damit die Grundfunktionalität getestet werden kann. Alternativ den Traffic mittels Wireshark/Network Analyzer/... einfangen und dir die SMTP-Konversation anschauen. Bei gmx kann es durchaus weitere Hürden geben, wie z.B. das Blocken von dynamischen IP-Adressen, DNS Reverse Lookup und natürlich die passende Authentifizierungsmethoden. Zitieren
nubbeldupp Geschrieben 2. August 2010 Autor Geschrieben 2. August 2010 Das muss ich dann alles daheim machen xD Auf dem Firmenlaptop hab kann ich das nicht bringen xD Aber ich werde es versuchen und dann im laufe des abends bzw morgen rückmeldung geben xD Zitieren
a3quit4s Geschrieben 3. August 2010 Geschrieben 3. August 2010 Warum endet eigentlich jeder deiner Saetze mit "xD"? Zitieren
Gateway_man Geschrieben 3. August 2010 Geschrieben 3. August 2010 Also ich hab mir grad selbst was geschrieben zum test und ich seh da kein Problem. Ich konnte die nachricht versenden und bekam diese auch.... Dim client As New SmtpClient("mail.gmx.net", 25) Dim mail As New MailMessage("hans@gmx.de", "mu@hopfen.de") mail.Body = "Das ist ein test" mail.Subject = "Test" client.Credentials = New Net.NetworkCredential("hans@gmx.de", "12345") client.Send(mail) In C Sharp: SmtpClient client = new SmtpClient("mail.gmx.net", 25); MailMessage mail = new MailMessage("hans@gmx.de", "mu@hopfen.de"); mail.Body = "Das ist ein test"; mail.Subject = "Test"; client.Credentials = new Net.NetworkCredential("hans@gmx.de", "12345"); client.Send(mail); lg Gateway Zitieren
nubbeldupp Geschrieben 4. August 2010 Autor Geschrieben 4. August 2010 So... nachdem ich mich gestern den ganzen Tag mit den neuen Azubis rumschlagen durfte, werd ich jetzt auch mal da weiter machen... habs jetzt leider noch nicht geschafft das zu Hause zu testen, werde dies aber heute abend endlich nachholen... Zitieren
nubbeldupp Geschrieben 4. August 2010 Autor Geschrieben 4. August 2010 Also ich hab mir grad selbst was geschrieben zum test und ich seh da kein Problem. Ich konnte die nachricht versenden und bekam diese auch.... Dim client As New SmtpClient("mail.gmx.net", 25) Dim mail As New MailMessage("hans@gmx.de", "mu@hopfen.de") mail.Body = "Das ist ein test" mail.Subject = "Test" client.Credentials = New Net.NetworkCredential("hans@gmx.de", "12345") client.Send(mail) In C Sharp: SmtpClient client = new SmtpClient("mail.gmx.net", 25); MailMessage mail = new MailMessage("hans@gmx.de", "mu@hopfen.de"); mail.Body = "Das ist ein test"; mail.Subject = "Test"; client.Credentials = new Net.NetworkCredential("hans@gmx.de", "12345"); client.Send(mail); lg Gateway Ich weiß nicht woran es liegt, aber wenn ich dabei das Debugging starte, klinkt sich das Programm bei "client.Send(mail);" einfach aus und steht still... es hängt sich nicht auf, macht aber auch nix mehr xD Zitieren
Gateway_man Geschrieben 4. August 2010 Geschrieben 4. August 2010 (bearbeitet) mach doch mal eine Fehlerspezifischere Fehlerbehandlung und lass dir dann nochmal die Exeption und die InnerExeption ausgeben: try { ...Code } catch (System.Net.Mail.SmtpException ex) { Ausgabe der Exeption } Allerdings hab ich ja stark die Vermutung das was bei deinem Privatrechner nicht stimmt. (Konfigurationstechnisch) Denn wie gesagt das oben gepostete script funktioniert bei mir einwandfrei... (Natürlich must du die logindaten sowie den Empfänger anpassen) lg Gateway Edit: Was verstehst du unter klinkt sich einfach aus? Bearbeitet 4. August 2010 von Gateway_man Zitieren
nubbeldupp Geschrieben 4. August 2010 Autor Geschrieben 4. August 2010 Ich habe es bis jetzt ja nicht aufm Privatrechner getestet xD Sitze ja noch in der Firma (Zum Glück sinds bald nur noch 2 Tage bis zum Urlaub ) Zitieren
lupo49 Geschrieben 4. August 2010 Geschrieben 4. August 2010 ... xD Was ist an deinen Aussagen immer so lustig? Hast du mittlerweile die Kommunikation (soweit die überhaupt stattfindet mitgeschnitten oder andere Tipps befolgt? Zitieren
nubbeldupp Geschrieben 4. August 2010 Autor Geschrieben 4. August 2010 (bearbeitet) Was ist an deinen Aussagen immer so lustig? Hast du mittlerweile die Kommunikation (soweit die überhaupt stattfindet mitgeschnitten oder andere Tipps befolgt? 1. Geht es dich was an wie oft ich ein "xD" in meine Posts einbaue?!? Vllt bin ich ja ein fröhlicher Mensch... wenns dir nicht passt brauchste es nicht lesen... sind halt nicht alles schlecht gelaunt Leute hier unterwegs. 2. Sitze ich seit nunmehr 2 Wochen an diesem Programm wobei ich das Mailproblem übersprungen habe um mich nicht unnötig aufzuhalten... Ich habe via Google diverse Lösungsansätze gefunden und ausprobiert... und keiner hat geholfen... 3. Kann ich auf unnötige Kommentare gut und gerne verzichten... @Topic Habe versucht die exception abzufangen... ohne erfolg Wenn ich das Programm als Form starte, hängt es sich einfach auf (Keine Rückmeldung) Wenn ich es als Konsolenanwedung starte, hängt es sich zwar nicht auf... aber tut auch nix weiter... Es scheint keine exception zu geben... Deshalb vermute ich auch, das es einfach durch die Firewall bei mir in der Firma geblockt wird... Folgendes steht dort wenn ich bei client.Send(mail) einen Haltepunkt mache (s. Bild) "client.ServicePoint.Address" hat eine Ausnahme vom Typ "System.NotSupportedException" verursacht. Ich habe halt 0 Ahnung, was mir VS damit sagen will Bearbeitet 4. August 2010 von nubbeldupp Zitieren
nubbeldupp Geschrieben 4. August 2010 Autor Geschrieben 4. August 2010 Bin grade mal auf die Idee gekommen, nen ping/tracert abzusetzen.... bei mir ist ab Firewall schluss... alles was dahinter ist, wird als "Zielhost nicht erreichbar" gemeldet... Wenn ich das Programm als Form starte, hängt es sich einfach auf (Keine Rückmeldung) Wenn ich es als Konsolenanwedung starte, hängt es sich zwar nicht auf... aber tut auch nix weiter... Meine interpretation von "klinkt sich aus" xD Zitieren
nubbeldupp Geschrieben 6. August 2010 Autor Geschrieben 6. August 2010 Völlig vergessen mich hier zu melden Bei mir zu Hause klappt es... in der Firma nicht... somit denke ich, das die Firewall schuld ist xD Danke für die Hilfe... aber ich muss mir jetzt nen anderen Weg suchen um zum gewünschten Ergebniss zu kommen :confused: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.