【问题标题】:Send schedule emails from sendgrid using c#使用 c# 从 sendgrid 发送计划电子邮件
【发布时间】:2014-07-15 06:12:44
【问题描述】:

我在我的应用程序中使用SendGrid 发送电子邮件。现在我想每周向我的用户发送电子邮件。 sendgrid 中是否有任何可用功能,如果是,那么我如何在 c# 中使用该 api

【问题讨论】:

  • 您查看过 Sendgrid 的网站/文档或联系过他们的支持吗?
  • 是的,我认为是营销电子邮件,但我仍然不知道如何在 c# 中使用该 api
  • 要安排电子邮件,只需搜索 Azure Webjobs。

标签: c# email azure sendgrid bulk


【解决方案1】:

SendGrid 支持通过一行代码额外发送电子邮件。

使用SendGridMessage.SendAt 属性。它期望 UNIX 时间戳为 long

获取或设置一个 unix 时间戳,允许您指定何时希望从 SendGrid 发送电子邮件。如果您希望在 API 请求时发送电子邮件,则无需这样做。

int sendAtUnixTime = new DateTimeOffset(sendOnUtcDateTime).ToUnixTimeSeconds();

var client = new SendGridClient("apiKey");
var from = new EmailAddress("fromEmailAddress", "fromName");
var to = new EmailAddress("toEmailAddress", "toName");
var msg = MailHelper.CreateSingleEmail(from, to, "subject", "", "bodyHtml");
msg.SendAt = sendAtUnixTime;                
var response = await client.SendEmailAsync(msg);

【讨论】:

  • 考虑到您最多只能提前 72 小时安排。
【解决方案2】:

UPD: 从 v3 API 开始,Sendgrid 确实支持预定电子邮件。请看answer from P.Campbell

Sendgrid 不发送预定的电子邮件。

您必须自己创建计划功能。我可以推荐查看Azure SchedulerScheduled Azure WebJobs。 Scheduled WebJobs 与 Azure Scheduler 配合使用,您可以对它们进行编程以定期(每周一次)执行您需要的任何操作(发送电子邮件)。

【讨论】:

  • 我对您的(诚然 3 岁的答案)投了反对票,因为它不正确。 SendGrid 已在其 v3 API 中启用了具有 SendAt 属性的电子邮件的预定发送功能。我意识到这个答案当时是正确的。
【解决方案3】:

您可以建立一个工人角色并浪费时间每周运行(简单逻辑)。它可以读取您的网站数据库并将电子邮件发送给您要邮寄的用户。

【讨论】:

    猜你喜欢
    • 2018-11-08
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多