mvc form error enviar credenciales correo con archivo adjunto c# email configuration smtp

error - enviar email c# windows form



C#código para enviar un correo electrónico sin saber mucho sobre la configuración del servidor? (7)

¿Hay alguna manera, en el código C #, de enviar un correo electrónico sin tener que conocer la configuración del servidor SMTP, etc. en el servidor, o tener todo eso configurado?

El código que estoy desarrollando se implementará en un servidor en vivo, pero no sé nada sobre la configuración, por lo que no puedo predecir cuál será el servidor SMTP.


Agregue esto a su web.config ( referencia de MSDN aquí ):

<system.net> <mailSettings> <smtp deliveryMethod="Network" from="[email protected]"> <network host="localhost" port="25" /> </smtp> </mailSettings> </system.net>

El uso de SmtpClient sin especificar la configuración de configuración utilizará los valores de web.config:

MailMessage msg = new MailMessage(...); // build message contents SmtpClient client = new SmtpClient(); client.Send(msg);


La mejor respuesta es si no sabes nada hasta que esté activo, ¿puedes mover todas las configuraciones a web.config? Esto permitirá la configuración hasta el último minuto. A continuación se muestra un código para volcar en su archivo web.config. Me gustaría preguntar por qué no tienes acceso a esta información, aunque

<system.net> <mailSettings> <smtp from="[email protected]"> <network host="SMTP SERVER ADDRESS" port="25" userName="USERNAME" password="PASSWORD"> </smtp> </mailSettings> </system.net>


Como alternativa: si no quiere confiar en la configuración del servidor y hacerlo programáticamente, siempre puede hacer esto:

MailMessage mail = new MailMessage() { To = "someone@somewhere", From = "someone@somewhere", Subject = "My Subject", Body = "My message" }; SmtpClient client = new SmtpClient("SMTP Server Address"); // Naturally you change the "SMTP Server Address" to the // actual SMTP server address client.Send(mail);

Pero te sugiero que lo incluyas en el archivo web.config (que también se puede configurar a través de la herramienta de configuración web ASP.NET).



Si su configuración de SMTP es correcta, solo haga esto:

MailMessage mail = new MailMessage(); mail.To = "To"; mail.From = "From"; mail.Subject = "Subject"; mail.Body = "Body"; SmtpMail.SmtpServer = "localhost"; SmtpMail.Send(mail);



Respondí una pregunta similar a esto no hace mucho tiempo. Puedes verlo aquí . Al usar PaperCut , puede probar su aplicación sin conocer o usar el servidor smtp de producción real.

Luego, durante la prueba, puede configurar el host en su máquina local que ejecuta el corte de papel en la aplicación / configuración web. Por lo tanto, se puede cambiar una vez que se mueva a producción.

Papercut le mostrará los correos electrónicos que se enviaron y también los contenidos.