【发布时间】:2023-03-25 06:51:01
【问题描述】:
使用 .net,我正在创建一个使用 Amazon SES 的邮件应用程序。亚马逊公开了一个标准的 SMTP 接口,这很好,但是发送邮件的速度是瓶颈,因为每封邮件都需要上传邮件的正文。
在这种情况下,正文是标准的 html,不是个性化的。
是否有可能以某种方式将模板上传到 SMTP 服务器,而不是传统上格式化邮件正文并每次都上传,而只是引用上传的 html 作为正文。
例如:
当前代码:
using (System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient())
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add(item.Email);
message.Subject = subject;
message.From = new System.Net.Mail.MailAddress(camp3.CampaignFromEmail);
message.Body = body;
message.IsBodyHtml = true;
smtp.Send(message);
}
我想写的代码:
using (System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient())
{
string serverGUID = smtp.uploadHTMLTemplate(id);
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add(item.Email);
message.Subject = subject;
message.From = new System.Net.Mail.MailAddress(camp3.CampaignFromEmail);
message.Body = "XTemplate: " + serverGUID;
message.IsBodyHtml = true;
smtp.Send(message);
}
这样的事情可能吗?
【问题讨论】:
-
仅当您的邮件服务器具有自定义功能时(SendGrid 可能)。我很确定 SMTP 不会做那样的事情。
-
为什么要 SMTP 这样做?您可以将模板存储在您的应用程序中,然后阅读它并将其分配给
message.Body,就像您在当前代码中所做的那样。正如@SLaks 所说,sendgrid 具有此功能,但从未尝试过。关注这个link -
@Nilesh - 你好。我正在编写的应用程序是 Amazon SES 的 WPF 桌面客户端。所以它在用户本地机器上运行。由于这个原因,受限于用户 DSL(等)的速度。
-
@Nilesh:他想避免通过网络发送尸体。
-
好的,我明白了!再想一想,您能否在亚马逊上触发一些服务,将电子邮件请求排队并将其发送出去。您始终可以将模板存储在服务可以使用的服务器上。