Domanda

Sto lavorando su un'applicazione Windows Forms (.NET 3.5) che dispone di un gestore di eccezioni integrato per rilevare eventuali eccezioni (il cielo non voglia) che potrebbero verificarsi.Mi piacerebbe che il gestore delle eccezioni fosse in grado di chiedere all'utente di fare clic su a Invia un report degli errori pulsante, che farebbe quindi sì che l'app invii un'e-mail al mio indirizzo e-mail FogBugz.

Qual è il modo migliore per farlo e ci sono dei "trucchi" a cui prestare attenzione?

È stato utile?

Soluzione

Ti consigliamo di utilizzare la classe SmtpClient come descritto Qui.
Non ci sono trucchi: inviare e-mail è facilissimo.

Altri suggerimenti

Non dovresti preoccuparti delle credenziali del client e utilizzare semplicemente SmtpClient come suggerito da Esteban.Avrai bisogno che l'utente fornisca un URL del server SMTP valido al momento della configurazione, ma la maggior parte degli ISP consente SMTP anonimo a condizione che tu sia sulla loro rete (uno dei loro client), purché l'utente inserisca l'URL del server smptp del proprio ISP, quindi la maggior parte la gente non avrebbe problemi.

Nota:È presente una sezione predefinita del file .config per archiviare le opzioni di configurazione per l'oggetto SmtpClient.Se inserisci le impostazioni lì non devi impostare esplicitamente nulla nel tuo codice quando invii un'e-mail.Di seguito è riportato un esempio della sezione:

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

Il nome utente e la password sono facoltativi.Intellisense funziona per queste parti del file di configurazione.

Modificare:leggera correzione al mio esempio di codice.

In un ambiente controllato, usare SmtpClient sarebbe la risposta.Ma sul computer di un utente avresti bisogno di un server SMTP per l'invio.

Potresti richiedere all'utente le credenziali SMTP, ma penso che sarebbe poco pratico per il tuo caso.Come utente, non vorrei fornire le mie credenziali SMTP a un'app casuale (pensa allo SPAM).Inoltre, non vuoi codificare le tue credenziali SMTP nell'app, sarebbe banale per un utente malintenzionato sniffare tali credenziali e utilizzare il tuo server per inviare SPAM.

Idealmente dovresti poter utilizzare l'agente di posta dell'utente per inviare l'e-mail.Stavo pensando che potresti essere in grado di formulare ed eseguire un mailto:URL, ma non sono sicuro che tu possa specificare il corpo o eventuali allegati del messaggio.

Hai detto che stai usando Fogbugz.

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

C'è del codice di esempio in giro, penso nella directory di installazione di FB.Ho controllato con Michael Pryor riguardo a:licenza e ha detto che andava bene usare il loro codice, ma YMMV, quindi controllerei.

Fornisce un buon punto di partenza.

Potresti anche voler controllare la terza parte aspNetEmail libreria, che ha molte funzionalità utili da offrire oltre a ciò che System.Net.Mail ti offre.

Ti consigliamo di utilizzare la classe SmtpClient come descritto Qui.Non ci sono trucchi: inviare e-mail è facilissimo.

Un ampio Domande frequenti su System.Net.Mail si trova Qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top