[imp] Spam not reporting

HiP-HiPpO arthur at cdne.net
Tue Jan 10 19:24:50 UTC 2017


   

>>>>>>> I have spam reporting enabled.  What I discovered is that  
>>>>>>> messages sent through this method are not actually being  
>>>>>>> submitted correctly.  I also found through manual testing,  
>>>>>>> that the parameter '-C revoke' is not always successful.  So I  
>>>>>>> changed the program line for spamc to use '-L spam' and '-L  
>>>>>>> forget' respectively.  Here's how I tested.
>>>>>>>
>>>>>>> In Horde and logged in as user1, find a message in Inbox to  
>>>>>>> route through the Spam reporting process.  Select it and  
>>>>>>> choose Other Options->View Source.  Copy all the source into a  
>>>>>>> new file named email.eml on the mail server system.
>>>>>>>
>>>>>>> Log into the mail server system as user1.
>>>>>>> Using spamc, manually report the email as spam to the system  
>>>>>>> to understand the intended behavior.
>>>>>>> $ spamc -d localhost -L spam -s 1500000 -u user1 < email.eml
>>>>>>>
>>>>>>> Responds with 
>>>>>>> Message successfully un/learned
>>>>>>>
>>>>>>> Run the same command a second time.
>>>>>>> $ spamc -d localhost -L spam -s 1500000 -u user1 < email.eml
>>>>>>>
>>>>>>> Responds with
>>>>>>> Message was already un/learned
>>>>>>>
>>>>>>> Remove the email from spamassassin with 
>>>>>>> $ spamc -d localhost -L forget -s 1500000 -u user1 < email.eml
>>>>>>>
>>>>>>> Responds with
>>>>>>> Message successfully un/learned
>>>>>>>
>>>>>>> Next, let's report the same email using Horde Spam Reporting  
>>>>>>> then manually test that it was learned.  
>>>>>>> In Horde, choose the same message from the Inbox and use the  
>>>>>>> Spam reporting method.  Horde handles the spam reporting  
>>>>>>> correctly and the messsage is moved to an alternative folder  
>>>>>>> as intended.  This works fine.
>>>>>>>
>>>>>>> Let's return to the email server system and manually check  
>>>>>>> that the email was submitted correctly.
>>>>>>>
>>>>>>> Rerun spamc with the email.eml file.  This should respond with  
>>>>>>> a meesage that this was already learned.
>>>>>>>
>>>>>>> $ spamc -d localhost -L spam -s 1500000 -u user1 < email.eml
>>>>>>>
>>>>>>> Responds with 
>>>>>>> Message successfully un/learned
>>>>>>>
>>>>>>> It does NOT!  Instead this message has now been learned  
>>>>>>> manually.  Horde did not report this correctly.
>>>>>>>
>>>>>>> Here is my backends.local.php file for reference.
>>>>>>>
>>>>>>> <?php
>>>>>>> $servers['imap']['disabled'] = true;
>>>>>>> $servers['advanced']['disabled'] = false;
>>>>>>> $servers['advanced']['name'] = 'Advanced IMAP Server';
>>>>>>> $servers['advanced']['hostspec'] = 'localhost';
>>>>>>> $servers['advanced']['port'] = 143;
>>>>>>> $servers['advanced']['maildomain'] = 'domain.net';
>>>>>>> $servers['advanced']['spam']['innocent']['display'] = true;
>>>>>>> $servers['advanced']['spam']['innocent']['program'] =  
>>>>>>> '/usr/bin/spamc -s 1500000 -d localhost -L forget -u %l';
>>>>>>> $servers['advanced']['spam']['spam']['display'] = true;
>>>>>>> $servers['advanced']['spam']['spam']['program'] =  
>>>>>>> '/usr/bin/spamc -s 1500000 -d localhost -L spam -u %l';
>>>>>>> $servers['advanced']['special_mboxes']['IMP_Mailbox::MBOX_DRAFTS'] =  
>>>>>>> 'Drafts';
>>>>>>> $servers['advanced']['special_mboxes']['IMP_Mailbox::MBOX_SENT'] =  
>>>>>>> 'Sent';
>>>>>>> $servers['advanced']['special_mboxes']['IMP_Mailbox::MBOX_SPAM'] =  
>>>>>>> 'Spam';
>>>>>>> $servers['advanced']['special_mboxes']['IMP_Mailbox::MBOX_TEMPLATES']  
>>>>>>> = 'Templates';
>>>>>>> $servers['advanced']['special_mboxes']['IMP_Mailbox::MBOX_TRASH'] =  
>>>>>>> 'Trash';
>>>>>>> $servers['advanced']['autocreate_special'] = true;
>>>>>>>
>>>>>>> Looking at the apache status, it does show that spamc process  
>>>>>>> was kicked off, but it does not appear that any intended email  
>>>>>>> files are actually being submitted, unless this is just how  
>>>>>>> the log lines appear.
>>>>>>>
>>>>>>> # /etc/init.d/apache2 status 
>>>>>>> ● apache2.service - LSB: Apache2 web server
>>>>>>>    Loaded: loaded (/etc/init.d/apache2)
>>>>>>>   Drop-In: /lib/systemd/system/apache2.service.d
>>>>>>>            └─forking.conf
>>>>>>>    Active: active (running) since Thu 2016-12-22 01:54:09 PST;  
>>>>>>> 5 days ago
>>>>>>>   Process: 25714 ExecStop=/etc/init.d/apache2 stop  
>>>>>>> (code=exited, status=0/SUCCESS)
>>>>>>>   Process: 24796 ExecReload=/etc/init.d/apache2 reload  
>>>>>>> (code=exited, status=0/SUCCESS)
>>>>>>>   Process: 25739 ExecStart=/etc/init.d/apache2 start  
>>>>>>> (code=exited, status=0/SUCCESS)
>>>>>>>    CGroup: /system.slice/apache2.service
>>>>>>>            ├─  417 /usr/sbin/apache2 -k start
>>>>>>>            ├─  431 /usr/sbin/apache2 -k start
>>>>>>>            ├─  432 /usr/sbin/apache2 -k start
>>>>>>>            ├─  448 /usr/sbin/apache2 -k start
>>>>>>>            ├─  449 /usr/sbin/apache2 -k start
>>>>>>>            ├─  452 /usr/sbin/apache2 -k start
>>>>>>>            ├─  454 /usr/sbin/apache2 -k start
>>>>>>>            ├─25018 /usr/sbin/apache2 -k start
>>>>>>>            ├─25753 /usr/sbin/apache2 -k start
>>>>>>>            ├─25757 /usr/sbin/apache2 -k start
>>>>>>>            ├─25758 /usr/sbin/apache2 -k start
>>>>>>>            ├─25843 /usr/sbin/apache2 -k start
>>>>>>>            ├─25846 /usr/sbin/apache2 -k start
>>>>>>>            ├─25847 /usr/sbin/apache2 -k start
>>>>>>>            ├─26512 /usr/sbin/apache2 -k start
>>>>>>>            ├─27332 /usr/sbin/apache2 -k start
>>>>>>>            ├─27334 /usr/sbin/apache2 -k start
>>>>>>>            ├─27403 sh -c /usr/bin/spamc -s 1500000 -d  
>>>>>>> localhost -L spam -u 'user1'
>>>>>>>            ├─27404 /usr/bin/spamc -s 1500000 -d localhost -L  
>>>>>>> spam -u user1
>>>>>>>            ├─28056 /usr/sbin/apache2 -k start
>>>>>>>            ├─31845 /usr/sbin/apache2 -k start
>>>>>>>            ├─31987 /usr/sbin/apache2 -k start
>>>>>>>            └─32190 /usr/sbin/apache2 -k start
>>>>>>>  
>>>>>>
>>>>>> Hi dev list.  Is there any other details I can add to this  
>>>>>> report that could be helpful to solve this? 
>>>>>>
>>>>>> Thank you,
>>>>>> Art
>>>>>> --
>>>>>
>>>>> I added the line
>>>>> $servers['debug'] = '/tmp/horde-debug.log';
>>>>> to imp/config/backends.local.php
>>>>> in hopes to get some additional details to append here.  The log  
>>>>> file is not created.
>>>>
>>>> You are missing the server key. I.e.,
>>>>
>>>> $servers['advanced']['debug'] = '/tmp/imap-debug.log';
>>
>>>> Though I'm not sure this will show anything about your spam problem.
>>>>
>>>> Are you sure that your webserver user has the correct permissions  
>>>> to report spam to spamc?
>>>
>>> Additionally, are you sure you are running the spamd daemon and  
>>> not using Amavis? The later won't work with spamc.
>>
>> I changed /etc/passwd and allowed www-data a login shell.  I used  
>> `su - www-data` to change to this user in which the web server runs  
>> as.  As the www-data user, I ran the commands
>>
>> `spamc -d localhost -L spam -s 1500000 -u user1 < test.eml`  
>>        as well as 
>> `spamc -d localhost -L forget -s 1500000 -u user1 < test.eml`  
>>
>> The reported behavior above was expected and this was the same  
>> behavior that was seen when running as www-data.  This test was  
>> successful and it validates that the www-data user can run spamc.  
>>  In /etc/apache2/envvars is the env variable `export  
>> APACHE_RUN_USER=www-data`
>>
>> netstat lists
>> tcp        0      0 localhost:spamd         *:*                     LISTEN
>>
>> /etc/services shows the spamd port as
>> spamd 783/tcp # spamassassin daemon
>>
>> I do have amavis installed and have set a $sa_spam_subject_tag = **JUNK**
>> spamassassin local,cf config has this
>> rewrite_header Subject ***** SPAM *****
>>
>> All auto reported Spam has the Subject that is used in the  
>> spamassassin local.cf file.
>>  
>
> Enabling debug logging with $servers['advanced']['debug'] =  
> '/tmp/imap-debug.log'; did not provide any usable insight.

Any other ideas on this issue?  I would expect that when I poke Apache  
for status, that it would have shown the spamc process being run with  
a list of those messages that are being reported.  But I don't see  
that in the output shown above when querying the status of the  
service.   It's almost as if the spamc program is called correctly but  
not with any email messages to report.


More information about the imp mailing list