Я вижу разные версии конструктора, одна использует информацию из web.config, одна указывает хост, а другая - хост и порт. Но как мне установить имя пользователя и пароль, отличные от web.config? У нас есть проблема, когда наш внутренний smtp блокируется некоторыми клиентами с высоким уровнем безопасности, и мы хотим использовать их сервер smtp, есть ли способ сделать это из кода вместо web.config?
В таком случае, как бы я использовал учетные данные web.config, если, например, в базе данных нет данных?
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());
}
}
c#
smtpclient
CloudMeta
источник
источник
UseDefaultCredentials
установлено значение true, он будет использовать значения по умолчанию, в противном случае он сначала будет смотреть вCredentials
свойстве, а затем в web.config. Если ничего не установлено, он отправит письмо анонимно.использование
NetworkCredential
Да, просто добавьте эти две строки в ваш код.
источник
источник
Поскольку не все мои клиенты используют аутентифицированные учетные записи SMTP, я прибегал к использованию учетной записи SMTP, только если значения ключей приложения указаны в файле web.config.
Вот код VB:
источник