mail - ¿La mejor manera de enviar un correo electrónico desde una aplicación.NET?
smtpclient c# example (6)
Querrá usar la clase SmtpClient como se describe aquí .
No hay inconvenientes: enviar correos electrónicos es lo más fácil posible.
Estoy trabajando en una aplicación de Windows Forms (.NET 3.5) que tiene un manejador de excepciones integrado para atrapar cualquier excepción (que no permita el cielo) que puedan surgir. Me gustaría que el manejador de excepciones pueda solicitar al usuario que haga clic en el botón "Enviar informe de errores", lo que provocaría que la aplicación envíe un correo electrónico a mi dirección de correo electrónico FogBugz.
¿Cuál es la mejor manera de hacer esto y hay algún "truco" de cuidado?
También es posible que desee consultar la biblioteca aspNetEmail de terceros, que tiene muchas características útiles por encima de lo que System.Net.Mail le ofrece.
En un entorno controlado, usar SmtpClient sería la respuesta. Pero en la máquina de un usuario necesitaría un servidor SMTP para enviar.
Puede solicitar al usuario sus credenciales SMTP, pero creo que eso no sería práctico para su caso. Como usuario, no me gustaría proporcionar mis credenciales SMTP a una aplicación aleatoria (piense en SPAM). Tampoco quiere codificar sus propias credenciales SMTP en la aplicación, sería trivial que un usuario malintencionado olfatee esas credenciales y use su servidor para enviar SPAM.
Idealmente, usted podría usar el agente de correo del usuario para enviar el correo electrónico. Estaba pensando que podría formular y ejecutar un mailto: URL, pero no estoy seguro de si podría especificar el cuerpo o los archivos adjuntos para el mensaje.
Mencionaste que estás usando Fogbugz.
Pruebe http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722 o http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for -the-FogBugz-API.aspx? isl = 59722
Hay algún código de muestra, creo que en su directorio de instalación de FB. Verifiqué con Michael Pryor sobre la licencia y dijo que estaba bien usar su código, pero YMMV, así que lo verificaría.
Proporciona un buen punto de partida.
No debería preocuparse por las credenciales del cliente y simplemente usar el SmtpClient como lo sugiere Esteban. Necesitará que el usuario proporcione una url de servidor Smtp válida en la configuración, pero la mayoría de los ISP permiten smtp anónimo siempre que esté en su red (uno de sus clientes), siempre que el usuario ingrese la url para el servidor sntp de su ISP entonces la mayoría las personas no tendrían ningún problema.
Nota: Hay una sección predefinida del archivo .config para almacenar las opciones de configuración para el objeto SmtpClient. Si pones la configuración allí, no tienes que establecer explícitamente nada en tu código cuando envíes un correo electrónico. Un ejemplo de la sección está a continuación:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="[email protected]">
<network host="smtp.somewhere.com.au" />
</smtp>
</mailSettings>
</system.net>
El nombre de usuario y la contraseña son opcionales. Intellisense funciona para estas partes del archivo de configuración.
Edición: corrección leve a mi ejemplo de código.
Querrá usar la clase SmtpClient como se describe aquí . No hay inconvenientes: enviar correos electrónicos es lo más fácil posible.
Aquí encontrará un extenso FAQ de System.Net.Mail .