我的应用程序每天使用mailgun (一个电子邮件API服务)发送一批自定义电子邮件。我有一个生产者工人计划每天运行,所做的就是查询数据库中唯一的配置/模板,并将作业添加到redis中。然后,我的消费者工作人员将这些请求发送给mailgun,并对其进行包装。它运行良好,但缺少的是统计应用程序端。我想显示出已经发送了多少封电子邮件,有多少封失败了,等等。我应该从哪里提取这些数据?
我可以想象消费者在添加消息之前将状态放入应用程序的数据库,或者使用mailgun的API进行统计。或者从红系中得到统计数据是很常见的吗?
耽误您时间,实在对不起
发布于 2018-02-28 11:55:54
回答:“我应该在哪里存储有关发送的电子邮件的统计数据?”您应该以一种易于使用的方式存储它。如果您想将它集成到您的应用程序中,数据库可能是一个不错的选择。如果您只想保存它以进行日志记录,那么文件日志可能是一种选择。
当涉及到多少失败的问题时,这取决于您定义为失败的是什么。如果您只是简单地将失败定义为“无效邮箱”,则可以使用特殊和有效的电子邮件地址发送。你(至少通常)会收到一封电子邮件,上面有关于电子邮件地址的信息,以及它失败的原因。然后,您可以读取此邮箱(自动或手动)并计数失败的电子邮件数量(并在计数完成后删除它们)。
您将不得不将所有发送的电子邮件登录到数据库中,并根据您收到的“无效邮箱”邮件的数量,您知道有多少封邮件是在哪里成功发送的。
但这将不会给你任何线索,有多少最终在一个垃圾邮件文件夹。为了了解这一点,您可以将图像放入电子邮件,并将映像的src指向服务器(http://myserver.com/image/uniqueid.jpg)上的唯一url,并让服务器端代码注册请求。通过这种方式,您可以跟踪电子邮件何时打开。但是,对于自动下载外部数据的电子邮件客户端(如outlook),这是行不通的。
https://softwareengineering.stackexchange.com/questions/366736
复制相似问题