Wrong date-format used in sieve-Script breaks autoresponder mechanism
An upgrade to ISPConfig 3.0.4 broke the autoresponder mechanism.
It seems that's because of the usage of "date" as date-part-parameter of currentdate in the sieve-script which does only work for "date" and not for "date+time" ( http://tools.ietf.org/html/rfc5260#section-4.2 ).
The autoresponder mechanism is very important for me so i wrote a quick fix:
$ cd /usr/local/ispconfig/server $ diff plugins-available/maildeliver_plugin.inc.php.ORIG plugins-available/maildeliver_plugin.inc.php 116,117c116,118 < // Set autoresponder start date < $tpl->setVar('start_date',$data["new"]["autoresponder_start_date"]);
// Convert date to ISO8601 and set as autoresponder start date list($date, $time) = explode(' ', $data["new"]["autoresponder_start_date"]); $tpl->setVar('start_date', $date.'T'.$time.date('O'));
119,120c120,122 < // Set autoresponder end date < $tpl->setVar('end_date',$data["new"]["autoresponder_end_date"]);
// Convert date to ISO8601 and set as autoresponder end date list($date, $time) = explode(' ', $data["new"]["autoresponder_end_date"]); $tpl->setVar('end_date', $date.'T'.$time.date('O'));
159c161
$ diff conf/sieve_filter.master.ORIG conf/sieve_filter.master 32c33 < if allof(currentdate :value "ge" "date" "<tmpl_var name='start_date'>", currentdate :value "le" "date" "<tmpl_var name='end_date'>") {
if allof(currentdate :value "ge" "iso8601" "<tmpl_var name='start_date'>", currentdate :value "le" "iso8601" "<tmpl_var name='end_date'>") {
Use the fix as you like on your own risk.