gpt4 book ai didi

c# - 如何在 Azure 中通过 SMTP 处理入站电子邮件

转载 作者:行者123 更新时间:2023-12-03 04:34:40 27 4
gpt4 key购买 nike

我希望发送到特定域的所有入站电子邮件都由 Azure 上的 SMTP 服务器(可能处于辅助角色)处理,并将所有电子邮件添加到 Azure 队列,以便我可以处理每封电子邮件并应用特定的业务规则,可能包括将原始电子邮件转发到新的电子邮件地址(因此我想保留整个电子邮件)。

我找到了这篇文章

http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving-email-in-windows-azure

但它现在已有近 5 年历史,并且 Sourceforge 上不再提供所需的组件之一 (CSES)。

有人有什么建议吗?例子?他们可以向我指出哪些文章?

干杯迈克

最佳答案

您当然可以这样做 - 但我不会推荐它,原因我将在下面解释,除非您正在谈论数千万封电子邮件。几年前,我确实出于与您类似的原因对此进行了研究,并最终选择了一项服务(在我的例子中是邮戳)。

简而言之,您需要在端口 25 和端口 465 上设置一个带有 TCP 监听器的辅助角色。然后您需要编写可以“与 SMTP 对话”的代码,正如您提到的,CSES 是一个起点但我很确定您实际上必须编写自己的协议(protocol)解析器。好消息是 SMTP 协议(protocol)非常简单。坏消息是它多年来已经被破坏了,你必须处理 TLS(端口 465)等事情。简而言之,你需要掌握 SMTP 规范并开始编写大量代码。从 CSES 开始并从那里开始可能是明智的。

但是,有充分的理由说明这对您来说不太具有成本效益。我不知道 Sendgrid 的定价结构;我使用邮戳,但我怀疑它们很相似。如果没记错的话,按照批量定价,我会为 200 万封电子邮件支付 1,000 英镑左右。

如果您自己编写,则必须编写和维护代码并修复任何错误。您还必须处理弹性问题,因此您可能需要两个工作人员或虚拟机 - 并且您可能需要在另一个 DC 中另外提供两个工作人员或虚拟机,以防止 DC 故障(这种情况很少见,但确实会发生)。您还需要为队列编写故障转移代码,以防 DC 中的队列基础设施出现问题。因此,您最终会拥有相当多的服务器以及需要编写和维护的大量代码。

如果您期望的电子邮件量确实如此之高,以至于使用 Sendgrid 或 Postmark 等服务的成本将超过该成本,那么您就必须这样做,并且没有真正的捷径。另外,我承认,我还没有回答你真正的问题。

如果您还不知道将获得多少容量,为什么不暂时使用其中一项服务,并在使用该服务的成本开始变得如此之大以至于具有成本效益时编写其他代码自己写吗?

关于c# - 如何在 Azure 中通过 SMTP 处理入站电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com