Transmittal Server服务如何取消到期邮件提醒


Transmittal服务的邮件提醒功能非常强大,但在应用中发现一旦邮件提醒功能在一段时间出现问题,等提醒功能恢复后,以前尚未发出的邮件会集中发送。这个可以理解,但有时用户往往希望在出问题时间段的邮件不用发送了,该如何解决呢?

 

答案是从数据库入手,邮件的发送会放在一个队列中,该队列本质上存于数据库表中,我们清空该表或设置某些记录的状态即可解决重复发送问题。

 

trs_notification_subscribers表中的reminder_status为邮件的发送状态,当把reminder_status设为6则对应的邮件状态为“发送完成”从而不会再次发送。

 

如果要修改某个时间段内的reminder_status则需要联合trs_notification_reminders表进行:

DECLARE @thresholdDate DateTime

SET @thresholdDate = '2016-09-01'

 

UPDATE receivers

SET

    receivers.reminder_status = 6 -- 6 means compleated

FROM

    dbo.trs_notification_subscribers receivers

    INNER JOIN dbo.trs_notification_reminders reminders ON receivers.reminder_id = reminders.id

WHERE

    (reminders.reminder_date <= @thresholdDate)

    AND

    (receivers.reminder_status <> 6)