Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于发送批量电子邮件的RabbitMQ_C#_Asp.net Core_Rabbitmq - Fatal编程技术网

C# 用于发送批量电子邮件的RabbitMQ

C# 用于发送批量电子邮件的RabbitMQ,c#,asp.net-core,rabbitmq,C#,Asp.net Core,Rabbitmq,我一直在考虑是否可以使用RabbitMQ帮助从控制台应用程序(C#ASP.NET CORE)发送批量电子邮件 我已经仔细浏览了他们的网站,但找不到关于使用RabbitMQ批量发送电子邮件的具体教程。 谁能给我指出正确的方向吗 谢谢, 亚伦 根据我在他们网站上的阅读和评论,似乎唯一明智的实现可能是在我的循环中使用producer,然后编写一个消费者发送电子邮件,如果应用程序出现故障,这将允许消息继续发送-但这不会给我关于电子邮件本身是否已发送/失败的报告-也不会为应用程序的电子邮件发送部分(消费

我一直在考虑是否可以使用RabbitMQ帮助从控制台应用程序(C#ASP.NET CORE)发送批量电子邮件

我已经仔细浏览了他们的网站,但找不到关于使用RabbitMQ批量发送电子邮件的具体教程。

谁能给我指出正确的方向吗

谢谢,

亚伦

根据我在他们网站上的阅读和评论,似乎唯一明智的实现可能是在我的循环中使用producer,然后编写一个消费者发送电子邮件,如果应用程序出现故障,这将允许消息继续发送-但这不会给我关于电子邮件本身是否已发送/失败的报告-也不会为应用程序的电子邮件发送部分(消费者内部)提供健壮性

这是合理的,是的,您必须自己实现该系统的某些部分,并对其进行测试,以确保可靠性满足您的期望。您应该阅读以下RabbitMQ主题:

  • 耐久性
  • 坚持
  • 消息确认
  • 出版商证实
你也可能对这一点感兴趣

最后,请只发送电子邮件给想要接收的人,并给他们一个取消订阅的选项



注意:RabbitMQ团队监视并有时只回答有关StackOverflow的问题。

您是否打算在实际发送电子邮件的组件之间分发任务?i、 e.控制台应用程序是否只是在更广泛的系统中触发该过程?是的,使用可靠的队列可能有意义。另外,您希望使用RabbitMQ获得什么?重启和恢复、可靠性,以及其他方面?我不确定你会找到一个具体的“这是如何使用Rabbit发送电子邮件”示例。我想你可能是从一个稍微奇怪的角度来看这个问题的。您通常会使用Rabbit为您的应用程序添加恢复力/健壮性—因此,如果您的应用程序崩溃或脱机,那么“要做的事情”(例如发送电子邮件)的请求不会丢失,并且应用程序能够在重新联机时从中断的位置恢复。让应用程序的一部分将消息(发送电子邮件的请求)放在队列中不是不合理的,应用程序的另一个部分是将这些消息从队列中拉出来——经典的生产者/消费者模式。如果您希望有一个可以从系统中的其他组件使用的中心电子邮件组件,那么它可能会很有用。实际上,我认为您看到了入门页面的工作队列图像,并认为您可以神奇地通过队列将您的制作人的电子邮件发送给您的电子邮件消费者,而且我认为这实际上是不可能的,也没有用用的,因为客户端必须运行代码才能在exchange/Queues上注册,兔子“入门”教程真的很好。为了更好地理解Rabbit会带来什么和不会带来什么,您应该仔细阅读它。我为用户提供了一个foreach循环,用于生成电子邮件正文&我被要求查看是否可以使用批量电子邮件器"ed RabbitMQ。根据我在他们网站上的阅读和评论,似乎唯一明智的实现可能是在我的循环中使用producer,然后编写一个消费者发送电子邮件,如果应用程序出现故障,这将允许消息继续发送-但这不会给我关于电子邮件本身是否已发送/失败的报告-也不会为应用程序的电子邮件发送部分(消费者内部)提供健壮性。乍一看,这听起来像三个组成部分。1) 电子邮件请求者(制作人);2) 消费者发送电子邮件;3) 侦听器监视电子邮件拒绝#2和3都通过状态/历史记录/审计的电子邮件地址进行数据库更新#1和2利用MQNow您提到的“循环”来生成电子邮件请求。这是应用户请求启动的批处理过程吗?对用户点击网站的响应?处理时间比较长吗?所选方法的重要考虑因素。