我使用的是 信使组件 配置的Doctrine将消息存储在一个数据库表中。
我看到在默认配置中,表"訊息"会自动创建。其中有一个"送达地点"字段。
我想保留所有被发送的消息,但当消息被消耗后,相应的记录会被自动删除。
当我通过 php bin/console messenger:consume async -vv
我看到一个时间戳被写到"送达地点"字段,但随后整个记录被删除。
有什么方法可以使记录不被删除,并且记录发送消息的日期和时间?
它可能没有正确表达问题。我的应用程序使用Messenger组件发送邮件。
应用程序发送的每一封邮件都会被审核到一个文件中。我可以知道应用程序在一段时间内发送的邮件数量。
然而,审核后的数量并不真实。应用程序计算所有被发送的邮件。它不计算那些真正到达目的地的邮件。
Messenger处理队列,不知道邮件是否是由邮件服务器发送的。只是派遣。
会发生什么?邮件是从一个HTML表格中获得的。畸形的域被应用程序和Messenger计算为已发送的邮件。
我想获得的是一个指标,说明邮件服务器已经成功处理了多少邮件。
我想解决我的问题的方法不是通过应用程序或Messenger组件,而是通过从邮件服务器本身获得某种审计。
我尝试了 Jakumi 建议,但触发器会捕获所有进入队列的消息。即使是畸形的域,如 foo@hotmai 或 [email protected]. 这个表中的计数与我记录发送邮件的审计文件相吻合。
我的问题是要统计有效发送的数量。
非常感谢大家的意见和建议。
PS:我为我的英语道歉。我已经使用了谷歌的翻译服务。等等你懂的。