13

.Net SmtpClient 的Send方法返回 void。它只抛出两个异常,SmtpException和一个FailureToSendToRecipientsException(或类似的东西)。

使用 SES 时,为了成功发送电子邮件,SES 会发回带有消息 ID 的 200 OK 消息。需要跟踪此消息 ID。

如何使用 C# SMTP api 执行此操作?

编辑: SMTP 协议提到了 SMTP 服务器发送的各种响应代码。我正在寻找一个向调用者公开“最终”响应代码的 SMTP 库。我已经知道 SES HTTP API。我暂时不打算使用它。

4

1 回答 1

3

您是否尝试过Amazon SES(简单电子邮件服务)C# Wrapper

它有一个 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按照 Amazon SES 示例使用: http: //docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-net.html

于 2013-05-24T05:52:17.567 回答