[TUT] Bugreporter für Multitools

06/04/2011 20:50 .Sebbel#1
Hi Com!

Da es in fast jedem Multitool eine "Bugreport-Funktion" gibt, die darauf hinweisen, die Bugs per PN, ICQ, Skype oder sonstiges zu melden, habe ihc mir gedacht, ich mache ein Tutorial für einen Bugreporter der einem eine Mail mit der z.B. Versionsnummer, dem Benutzernamen, der Fehlernachricht und der Kontaktmöglichkeit des jeweiligen Fehlermelders.

Fangen wir an.

Als erstes erstellt ihr eine neue Form. In dieser Form sollte mindestens ein Sendeobjekt (Drauf klicken -> Mail senden) sein. Dazu eignet sich fast alles, aber mit Buttons geht es doch am besten. Dann benötigt ihr noch mindestens ein Texteingabefeld je nach dem, was für Daten ihr von dem Benutzer wissen wollt. Sei es jetzt eine Richtextbox, eine Textbox oder eine Maskedtextbox - volkommen egal.Die Anordnung ist wie es euch gefällt, das kann ich ja nicht entscheiden :P

Dann importiert ihr den Namespace System.Net.Mail
Code:
 
Imports System.Net.Mail
Dieser ist dazu da, dass die grundlegenen Begriffe für den Mailversand vorhanden sind.

Jetzt folgt die Definition der Mail-Daten, also Mailausgangsserver, Port, Benutzername und Passwort. Falls jemand seinen SMTP-Server nicht weiß, [Only registered and activated users can see links. Click Here To Register...]ist eine gute Liste.

Code:
    Dim MSG As New MailMessage
    Dim myCredentials As New System.Net.NetworkCredential
    Dim mySmtpsvr As New SmtpClient()
Dieser Abschnitt vereinfacht die spätere Verwendung der einzelnen Begriffe :)

Code:
            mySmtpsvr.Port = 25 
'Definiert den Port des Mailservers
            mySmtpsvr.Host = "mail.gmx.net"  
'Die Adresse des Mailservers, hier GMX
            myCredentials.UserName = "[Only registered and activated users can see links. Click Here To Register...]" 
'Hier der Benutzername
            myCredentials.Password = "blabla456" 
'das Passwort
            mySmtpsvr.Credentials = myCredentials 
'Definiert, Dass die Benutzerdaten mit myCredentials definiert sind
            MSG.From = New MailAddress(myCredentials.UserName)
'Definiert, dass die neue Nachricht mit dem Benutzername aus myCredentials 
'als Absender versendet wird
Jetzt zum zweitwichtigsten Teil - der Definition von Betreff, Empfänger und Textkörper.

Code:
           MSG.To.Add("[Only registered and activated users can see links. Click Here To Register...]")
'Definiert den Empfänger, muss gültige Mail-Adresse sein
            MSG.Subject = TextBox1.Text
'Definiert den Betreff (z.B. Bugreport), hier Textbox1
            MSG.Body = My.Settings.USERNAME & " Bugreport:    " & Textbox2.Text
'Definiert den Textkörper. Als erstes kommt jetzt der 
'zuvor am besten in den internen Einstellungen gespeicherte 
'Benutzername, Dann das Wort Bugreport und dann die Nachricht 
'ausTextbox2. Am sinnfollsten ist es, bei Textbox2 Multiline auf True
'zu setzen. Das selbe gilt für Maskedtextboxen. Richtextboxen sind Multiline
            MSG.IsBodyHtml = False
'Diese Zeile besagt, dass die Nachricht als plain Text, also unformatierter Text,
'und nicht im HTML-Format gesendet wird.
Der wichtigste Teil ist immer noch dieser:

Code:
 mySmtpsvr.Send(MSG)
Er sendet die Mail.

Es empfielt sich, den gesamten Code, bis auf den allerersten Teil in einen Try - Catch-Block zu setzen, dass falls ein Fehler auftritt, eine Meldung ausgegeben werden kann, die besagt, was für ein Fehler vorlieg.

Kritik, Vorschläge und Wünsche hier, per PN oder sonstwo. Beleidigungen werden ohne #reportet durchgeführt, genauso wie ein doppeltes #clrq.

Ich hoffen, dass macht manche Multitools besser!

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

Die DLL ist nur da, falls ihr den Code nicht koieren wollt! :)

Die DLL bindet ihr wie folgt ein:

Projekteigenschaften -> Verweise -> Hinzufügen

Dann in dem neuen Fenster auf Durchsuchen -> DLL auswählen -> Bestätigen

Jetzt müsst ihr in egal welcher Form nur noch oben die DLL importieren (Imports-Befehl). Der Aufruf der Mail-Funktion lautet dann wie folgt:
Code:
 Mailversand(Empfänger, SMTP_Server, Betreff, Absender,Username, Passwort, Nachricht, Anzahl)
Thx sind gern gesehen! :)
06/04/2011 20:59 Dead Wrong#2
Nice, teste ich mal !

#thanked
06/27/2011 21:21 .Sebbel#3
So, Beispielprojekt ist drin, hab auch noch ne .dll für faule gemacht! 100% Spyware & Virus-free!