使用Amazon SES添加list-unsubscribe标题头

3

我正在寻找一个可用的C#示例,用于在Amazon SES中添加list-unsubscribe标头。

在阅读了Amazon-SES现在支持添加标头后,我正在寻找一个C#示例,但未能找到一个。

1个回答

1

我找不到像Java那样好的API。对于C#,我找到了两个替代方案。

最简单的选择可能是切换到SMTP接口和.Net的本地SMTP类(或第三方库):使用C#通过SMTP发送电子邮件
示例代码使用了System.Net.Mail中的MailMessage

// Create and build a new MailMessage object
MailMessage message = new MailMessage();
message.IsBodyHtml = true;
message.From = new MailAddress(FROM,FROMNAME);
message.To.Add(new MailAddress(TO));
message.Subject = SUBJECT;
message.Body = BODY;
// Comment or delete the next line if you are not using a configuration set
message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET);

另一个(不太理想的)选项是使用SendRawEmailRequest。使用此API,您必须将消息与其标题、附件和其他数据一起编码到MemoryStream中。
示例代码来自AWS SDK .Net文档 - SES - RawMessage

var sesClient = new AmazonSimpleEmailServiceClient();

var stream = new MemoryStream(
  Encoding.UTF8.GetBytes("From: johndoe@example.com\n" +
    "To: janedoe@example.com\n" +
    "Subject: You're invited to the meeting\n" +
    "Content-Type: text/plain\n\n" +
    "Please join us Monday at 7:00 PM.")
);

var raw = new RawMessage
{
  Data = stream
};

var to = new List<string>() { "janedoe@example.com" };
var from = "johndoe@example.com";

var request = new SendRawEmailRequest
{
  Destinations = to,
  RawMessage = raw,
  Source = from
};

sesClient.SendRawEmail(request);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接