Я настраиваю Amazon Simple Email Service, Я перехожу к делу, когда пытаюсь отправить электронное письмо, и получаю сообщение об ошибке:
SMTP-серверу требуется безопасное соединение, иначе клиент не прошел аутентификацию. Ответ сервера: требуется аутентификация.
Поэтому я хотел бы использовать самозаверяющий сертификат с использованием IIS 8, но пока я его реализовал, и все еще получаю ту же ошибку.
<mailSettings> <smtp from="emal@email.com" deliveryMethod="Network" > <network host="my-amazon-host.com" port="25" defaultCredentials="false" enableSsl="true" userName="my-user-name" password="my-password" /> </smtp> </mailSettings>
заранее спасибо!
Я читаю этот:
Библиотеки TLS электронной почты .NET поддерживают только STARTTLS, который SES не поддерживает сегодня. Мы поддерживаем так называемую «TLS Wrapper» или аутентификацию SMTPS. Я могу понять, насколько это расстраивает, но вы можете использовать OpenSSL в качестве обходного пути и туннелировать через это программное обеспечение, работающее на вашем компьютере, для использования .NET для программирования для нашей конечной точки SMTP.
поэтому я решил создать собственную реализацию smtp с помощью amazon SDK:
var smtpSection = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
var toAddresses = email.To.Select(mailAddress => mailAddress.Address).ToList();
var destination = new Destination {ToAddresses = toAddresses};
var subject = new Content(email.Subject);
var textBody = new Content(email.Body);
var body = new Body(textBody);
var message = new Message(subject,body);
var request = new SendEmailRequest(smtpSection.From, destination, message);
Amazon.RegionEndpoint region = Amazon.RegionEndpoint.USEast1;
var client = new AmazonSimpleEmailServiceClient(region);
try
{
client.SendEmail(request);
}
catch (Exception ex)
{
//TODO: logger.
throw;
}
finally
{
email.Dispose();
client.Dispose();
}
а также вам необходимо настроить политику для вашего пользователя в Iam со следующими разрешениями:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "---------",
"Effect": "Allow",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": [
"*"
]
}
]
}
и не забудьте добавить настройки Amazon в приложение или веб-конфигурацию:
<add key="AWSAccessKey" value="-----------------"/>
<add key="AWSSecretKey" value="-----------------"/>
Я надеюсь, что это поможет кому-нибудь еще. Спасибо!