Vejo versões diferentes do construtor, uma usa informações de web.config, uma especifica o host e outra o host e a porta. Mas como faço para definir o nome de usuário e a senha como algo diferente do web.config? Temos o problema em que nosso smtp interno é bloqueado por alguns clientes de alta segurança e queremos usar seu servidor smtp. Existe uma maneira de fazer isso a partir do código, em vez de web.config?
Nesse caso, como eu usaria as credenciais web.config se nenhuma estiver disponível no banco de dados, por exemplo?
public static void CreateTestMessage1(string server, int port)
{
string to = "jane@contoso.com";
string from = "ben@contoso.com";
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());
}
}