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 = "[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
fonte
fonte
UseDefaultCredentials
for definido como true, ele usará os padrões, caso contrário, ele primeiro procurará naCredentials
propriedade e depois no web.config. Se nenhum estiver definido, o e-mail será enviado anonimamente.Usar
NetworkCredential
Sim, basta adicionar essas duas linhas ao seu código.
fonte
fonte
Como nem todos os meus clientes usam contas SMTP autenticadas, usei a conta SMTP apenas se os valores da chave do aplicativo forem fornecidos no arquivo web.config.
Aqui está o código VB:
fonte