Re: Dúvidas filtro antispam

Enviado por Valmir André de Sena em 18/5/2009 14:20:14
Oi William,

Vc tem razão o msg_number obtido não serve mais para encontrar a mensagem. Assim eu modifiquei o arquivo para obter o campo "Message-ID" do cabeçalho, pois este identificador não muda, e com ele eu posso encontrar a mensagem na pasta Spam do usuário na estrutura do cyrus.

DIFF:

--- class.imap_functions.inc.php 2009-05-18 13:57:34.000000000 -0300
+++ class.imap_functions.inc_modify.php 2009-05-18 14:04:09.000000000 -0300
@@ -2810,7 +2810,13 @@

$args = explode(" ",$linha);
$signature = $args[1];
- }
+
+ //Encontrar o ID da mensagem
+ }else if(eregi("^Message-ID", $linha) ){
+ $args = explode(" ",$linha);
+ $msg_id = "'$args[1]'";
+
+ }
}

// feed dspam
@@ -2818,8 +2824,8 @@
case 'true': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; break;
case 'false': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; break;
}
- $tags = array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##');
- $cmd = str_replace($tags,array($email,$username,$domain,$signature),$cmd);
+ $tags = array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##','##MSGID##');
+ $cmd = str_replace($tags,array($email,$username,$domain,$signature,$msg_id),$cmd);
system($cmd);
}
imap_close($mbox_stream);

Fonte: http://www.expressolivre.org/newbb/viewtopic.php?forum=3&topic_id=1127&post_id=6468