Skip to main content
 首页 » 编程设计

c#之发送到短信电子邮件地址的多个 sendgrid 电子邮件出现故障

2024年05月06日41lori

当我的 .NET (2015) Windows 应用程序在我的 Azure Windows Server 2012 VM 上需要将超过 160 个字符的消息发送到电子邮件地址到移动设备上的 SMS 文本消息服务时,我的应用程序会截断长消息分成每个少于 160 个字符的“ block ”,然后使用 SendGrid 通过电子邮件发送每个 block 。

但它们并没有按发送的顺序到达。我该如何解决这个问题?

我试过在每个 block 之间插入延迟 (thread.sleep),但这不起作用。

请您参考如下方法:

你真的不能。您无法控制最终用户电话发送/接收短信的时间和顺序。您可以尝试做的是将消息分解并在循环中等待一分钟,然后再发送下一个 block 。不能保证这会起作用,而且听起来您已经尝试过了。

使问题复杂化的是使用 SendGrid 或任何 ESP(电子邮件服务提供商)。当您向大多数 ESP 发送请求时,他们会将请求排队并发送。因此,即使您稍等片刻才发送您的请求,它们也可能排在队列中并由 ESP 发送,彼此间隔几秒钟。

您可能想尝试使用 Twilio 等 SMS/MMS 服务提供商来发送短信。其中一些服务已经具有自动为您将太长的消息分成 block 的逻辑,并且可能已经尽力解决乱序问题。