Подтвердить что ты не робот

Как получить ответ от SES при использовании С# SMTP API

Метод .Net SmtpClient Send возвращает void. Он выдает только два исключения: SmtpException и a FailureToSendToRecipientsException (или что-то в этом роде).

При использовании SES для успешной доставки электронной почты SES отправляет обратно сообщение 200 OK с идентификатором сообщения. Этот идентификатор сообщения нужно отслеживать.

Как это сделать, используя С# SMTP api?

Изменить: в протоколе SMTP упоминаются различные коды ответов, отправленные сервером SMTP. Я ищу библиотеку SMTP, которая предоставляет "конечный" код ответа вызывающему. Я уже знаю API-интерфейс SES HTTP. На данный момент я не собираюсь использовать это.

4b9b3361

Ответ 1

Вы пробовали Обертка С# Amazon SES (Simple Email Service)?

Он имеет метод SendEmail, который возвращает класс с MessageId:

public AmazonSentEmailResult SendEmail(string toEmail, string senderEmailAddress, string replyToEmailAddress, string subject, string body)
{
       List<string> toAddressList = new List<string>();
       toAddressList.Add(toEmail);
       return SendEmail(this.AWSAccessKey, this.AWSSecretKey, toAddressList, new List<string>(), new List<string>(), senderEmailAddress, replyToEmailAddress, subject, body);
}

public class AmazonSentEmailResult
{
    public Exception ErrorException { get; set; }
    public string MessageId { get; set; }
    public bool HasError { get; set; }

    public AmazonSentEmailResult()
    {
        this.HasError = false;
        this.ErrorException = null;
        this.MessageId = string.Empty;
    }
}

Я не думаю, что вы можете получить MessageId с помощью System.Net.Mail.SmtpClient, вам нужно будет использовать Amazon.SimpleEmail.AmazonSimpleEmailServiceClient согласно образцу SAS Amazon: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-net.html