Frage

Ich arbeite auf einem Windows Forms (.NET 3.5) Anwendung, die einen integrierten Ausnahme-Handler jeden (Gott bewahre) Ausnahmen zu fangen hat, die entstehen kann. Ich würde die Exception-Handler möchte in der Lage sein, den Benutzer aufzufordern, eine Fehlerbericht senden Schaltfläche klicken, die dann die App verursachen würde eine E-Mail an meine FogBugz E-Mail Adresse senden.

Was ist der beste Weg, dies zu tun, und gibt es irgendwelche „Fallstricke“ zu achten?

War es hilfreich?

Lösung

Sie werden die SmtpClient Klasse verwenden möchten, wie skizziert hier .
Es gibt keine gotchas - e-mail zu senden über so einfach ist, wie es erhält

.

Andere Tipps

Sie sollten nicht über die Client-Anmeldeinformationen kümmern müssen und nur die SmtpClient verwenden, wie von Esteban vorgeschlagen. Sie erhalten die Benutzer benötigen eine gültige SMTP-Server-URL in der Konfiguration zur Verfügung zu stellen, aber die meisten ISPs erlauben anonyme SMTP bieten Sie auf ihrem Netz sind (einer ihrer Kunden) - solange der Benutzer für ihre ISPs smptp Server in der URL setzt dann die meisten Leute würden keine Probleme haben.

Hinweis: Es gibt einen vordefinierten Abschnitt der .config-Datei, die Konfigurationsoptionen für das SmtpClient Objekt zum Speichern. Wenn Sie die Einstellungen in dort setzen müssen Sie nicht explizit etwas in Sie Code auf, wenn eine E-Mail zu senden. Ein Beispiel für den Abschnitt unter:

<system.net>
   <mailSettings>
      <smtp deliveryMethod="Network" from="stuff@somewhere.com.au">
         <network host="smtp.somewhere.com.au" />
      </smtp>
   </mailSettings>
</system.net>

Der Benutzername und das Passwort sind optional. Intellisense funktioniert für diese Teile der Konfigurationsdatei.

Edit:. Leichte Korrektur zu meinem Code-Beispiel

In einer kontrollierten Umgebung, mit SmtpClient würde die Antwort sein. Aber auf einen Computer des Benutzers würden Sie einen SMTP-Server benötigen, um durch zu senden.

Sie können den Benutzer für ihre SMTP-Anmeldeinformationen aufgefordert, aber ich denke, dass für Ihren Fall unpraktisch wäre. Als Anwender möchte ich nicht meine SMTP-Anmeldeinformationen in eine zufällige App zur Verfügung zu stellen (man denke SPAM). Sie will auch nicht zu hart Code Ihre eigenen SMTP-Anmeldeinformationen in die App, wäre es trivial sein, dass ein böswilliger Benutzer diese Anmeldeinformationen zu schnuppern und Ihren Server SPAM senden.

Im Idealfall würden Sie in der Lage sein, die Benutzer-Mail-Agenten zu verwenden, um die E-Mail zu senden. Ich dachte, Sie könnten in der Lage sein, einen mailto zu formulieren und auszuführen. URL, aber ich bin nicht sicher, ob Sie den Körper oder alle Anlagen für die Nachricht angeben, wären in der Lage

Sie haben erwähnt, Sie verwenden Fogbugz.

Versuchen Sie http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722 oder http: / /www.fogcreek.com/FogBugz/blog/post/C-wrapper-for-the-FogBugz-API.aspx?isl=59722

Es gibt einige Beispiele-Code um, ich glaube, in Ihrem FB-Installationsverzeichnis. Ich habe mit Michael Pryor re:. Lizenzierung und er sagte, es ist in Ordnung, ihren Code zu verwenden, aber YMMV, also würde ich überprüfen

Es bietet einen guten Ausgangspunkt.

Sie möchten vielleicht auch die 3rd-Party überprüfen aspNetEmail Bibliothek, die viele nützliche Funktionen hat zu bieten als das, was System.Net.Mail gibt Ihnen.

  

Sie wollen die SmtpClient Klasse verwenden, wie skizziert System.Net.Mail FAQ befindet sich hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top