Veo diferentes versiones del constructor, uno usa información de web.config, uno especifica el host y otro el host y el puerto. Pero, ¿cómo configuro el nombre de usuario y la contraseña en algo diferente de web.config? Tenemos el problema de que algunos clientes de alta seguridad bloquean nuestro smtp interno y queremos usar su servidor smtp, ¿hay alguna forma de hacerlo desde el código en lugar de web.config?
En este caso, ¿cómo usaría las credenciales web.config si ninguna está disponible en la base de datos, por ejemplo?
public static void CreateTestMessage1(string server, int port)
{
string to = "[email protected]";
string from = "[email protected]";
string subject = "Using the new SMTP client.";
string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient(server, port);
// Credentials are necessary if the server requires the client
// to authenticate before it will send e-mail on the client's behalf.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateTestMessage1(): {0}",
ex.ToString());
}
}
c#
smtpclient
CloudMeta
fuente
fuente
UseDefaultCredentials
se establece en verdadero, usará los valores predeterminados; de lo contrario, primero se buscará en laCredentials
propiedad y luego en web.config. Si no hay ninguno configurado, enviará el correo electrónico de forma anónima.Utilizar
NetworkCredential
Sí, solo agrega estas dos líneas a tu código.
fuente
fuente
Como no todos mis clientes usan cuentas SMTP autenticadas, recurrí al uso de la cuenta SMTP solo si los valores clave de la aplicación se proporcionan en el archivo web.config.
Aquí está el código VB:
fuente