背后的故事
不久前,有人问我是否可以在内部实施群发电子邮件解决方案,以便更好地控制敏感信息。我提出了一个两步计划:在 Excel/VBA/CDO 中开发原型以使用户熟悉,然后分阶段使用 .Net/SQL 服务器解决方案以提高速度和稳健性。
发生了什么变化
进入第二阶段 3 个月后,管理层决定继续将电子邮件营销外包给另一家公司,这很好。第一个问题是管理层还没有采取行动让一家公司通过,所以我仍然有义务让当前的原型工作。
尽管如此,原型仍然有效,或者至少它确实有效。第二个问题出现在我们的 Exchange 2003 中继服务器与 Exchange 2010 切换时。事实证明,默认情况下会启用更多“安全”功能,例如节流策略,我一直在帮助系统管理员解决有效的服务器配置。发生的事情是发送 +100 封电子邮件后,服务器开始拒绝发送请求,并出现以下错误:
The message could not be sent to the SMTP server. The transport error code is 0x800ccc67.
The server response was 421 4.3.2 The maximum number of concurrent connections has exceeded a limit, closing transmission channel
不幸的是,我们只有在 Marketing 有东西要发送时才能测试服务器配置,大约每月一次。
下一步是什么?
我正在查看 Excel 的 VBA 计时器功能,以帮助限制我的主循环泵以帮助限制发送请求。根据我的阅读理解,这里的第三个问题是,我能获得的最佳精度是计时器上的 1 秒。与我们一直发送的 5 封电子邮件/秒相比,每秒 1 封电子邮件会更长(大约长 4 到 5 倍)。这将 3 小时的流程变成了超过员工可用时间的全天流程。我想我可以通过每经过一秒发送 5 封电子邮件来反转速率,但是如果计时器的精度更高,则会产生更多的突发影响,而不是稳定的速率。在我看来,这会创建一个控制较少的过程,我不确定服务器将如何处理突发而不是稳定的速率。 我有哪些选择?