Fehler““
//using System.Net;
//using System.Net.Mail;
//using System.IO;
private void fehler(Exception ex)
{
//Variablen initialisieren
string Name = "Max"; //Wichtig für die Fehlermeldung an den Benutzer
//Um eine E-Mail an Ihr Konto zu schicken, benötigen Sie einen zweiten Account, von dem Sie aus die Nachricht versenden
string EMailadresse = "beispiel@gmail.com"; //E-Mail-Adresse, von der aus die Nachricht gesendet wird
string Passwort = "passwort"; //Passwort der E-Mail-Adresse, von der aus die Nachricht gesendet wird
string Host = "smtp.googlemail.com"; //SMTP-Server des E-Mailanbieters (http://www.patshaping.de/hilfen_ta/pop3_smtp.htm)
int Port = 587; //Port des E-Mailanbieters
string EMailadresse_Empfänger = "beispiel2@gmail.com"; //E-Mail-Adresse, an die die Nachricht gesendet wird
//Zusammenfassung der Fehlermeldung
string Fehlermeldung = ex.ToString();
Fehlermeldung = Fehlermeldung.Replace(": ", "rn" + "rnBeschreibung: ");
Fehlermeldung = Fehlermeldung.Replace(" ", "rnOrt: ");
string Ausgabe = "Meldung: " + Fehlermeldung + "rnrn" +
"Uhrzeit: " + DateTime.Now.ToString("HH:mm:ss") + "rn" +
"Datum: " + DateTime.Now.ToString("dddd") + ", den " + DateTime.Now.ToString("dd.MM.yyyy") + "rn" +
"Version: " + System.Windows.Forms.Application.ProductVersion;
//MessageBox an den Benutzer
DialogResult dr = MessageBox.Show("Es ist folgender Fehler aufgetreten:" + "rn" + ex.Message + "rnrn" +
"Möchten Sie die Fehlermeldung an "" + Name + """" senden?""
Alte URL:
/snippet/fehlermeldung-in-e-mail-oder-txt-datei-speichern/1651
Sorry, aber das kann man eigentlich nur mit 1 bewerten. Ich sage Ihnen auch wieso:
1. Unnötig viele String-Allokationen. Die Replaces sind unnötig und fehleranfällig (was ist, wenn Microsoft etwas an der Formatierung ändert?) – ein Entwickler wird auch ohne diese etwas mit der Exception anfangen können. Um die komplette Nachricht zusammen zu bauen empfehle ich den StringBuilder.
2. Der komplette Code in einer Methode -> schlechter Programmierstil
3. Verwenden von Betriebssystemressourcen (konkret: Streams) ohne sicherzustellen, dass diese sicher wieder aufgeräumt werden (Tipp: using-keyword). Noch einfacher gehts mit der File-Klasse, z.B. per WriteAllText-Methode.
4. Das Gleiche kann man mittels Logging-Framework (z.B. log4net) einfacher und konfigurierbarer erreichen.
@spezi: ICH wüsste nicht wie! Dann poste du doch mal das gleicher in grün/besser.
Ich find die Idee an sich nämlich super…