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).
Prueba esto de google
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);
Sí, puedes usar herramientas como SMTP4Dev para ''enviar'' correos electrónicos sin tener un servidor SMTP en absoluto. Lo uso con frecuencia para las pruebas para asegurarme de que en realidad no estoy enviando correos electrónicos a usuarios reales por error.
Más información @ http://netdevtools.com/how-to-test-smtp-emails-without-a-mail-server-no-smtp-configuration-required-in-asp-net-c/
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.