Ticket #2203 (closed enhancement: fixed)

Opened 2 years ago

Last modified 2 years ago

IspCP Autoreply infinite autoreplies loop

Reported by: kilburn Owned by: kilburn
Priority: normal Milestone: ispCP ω 1.0.4
Component: Backend (Engine) Version: ispCP ω 1.0.3
Severity: Medium Keywords: autoreply mail vacation
Cc:

Description

The current ispcp's autoreplier is prone to enter an "infinite autoreply" loop when an address with autoreply enabled sends an e-mail to another autoreply-enabled address.

Although the current script checks some special headers trying to detect this kind of loops, it's not enough when the other (not ispcp-controlled) autoreplier deletes such headers in their replies.

See  this thread for evidence.

Change History

comment:1 Changed 2 years ago by kilburn

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r2592.

To solve it, I've created a new "autoreplies_log" table, storing <time,from,to> records of all the sent autoreplies. Thereafter, the logic goes as follows:

  • arpl start
  • delete autoreplies_log records older than 24 hours
  • before sending a message, check if there exists a record with the same <from,to> than the one we are about to send, and:
    • If the record exist, skip sending the autoreply.
    • Otherwise (1) send the message, (2) add a new record <now(),from,to>
Note: See TracTickets for help on using tickets.