我尝试接收 AWS 分配给电子邮件的 MessageID,以便我稍后可以使用 SNS/SQS 接收电子邮件反馈。并使用 System.Net.SmtpClient 响应成功的电子邮件无效。您仅在失败时收到异常代码。
AWS 将始终发送响应,但要获取成功消息,我需要合并 MailKit nuget 并使用 MessageSent 事件。
响应看起来像这样......“OK xxxxx-xxxxxx-xxxxxx-xxxxx”,其中 x 是新分配的 messageID。
只需使用 MailKit nuget 和以下代码:
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
namespace TestMail
{
internal class Program
{
static async Task Main(string[] args)
{
await SendMail();
}
internal static async Task SendMail()
{
using (var mail = new MimeMessage())
{
mail.From.Add(MailboxAddress.Parse("[email protected]"));
mail.To.Add(MailboxAddress.Parse("[email protected]"));
mail.Subject = "TEST";
mail.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = "<P>Hello!</P>" };
string goodMessage = "";
using (var smtp = new SmtpClient())
{
smtp.MessageSent += async (sender, args) =>
{
goodMessage = args.Response;
};
await smtp.ConnectAsync("email-smtp.us-east-1.amazonaws.com", 587, SecureSocketOptions.StartTls);
await smtp.AuthenticateAsync("user", "password");
await smtp.SendAsync(mail);
}
Console.WriteLine("This is the messageID: " + goodMessage.Split(' ')[1]);
}
}
}
}