Question about Filters and GenericAgent in OTRS

Hi there, I'm using OTRS for about a week now. So far I like it a lot. I'm planning to implement the software on our help desk in the coming days. I'd appreciate some help with these issues I'm running into. I'm using ORTS 2.1.3 on Linux. 1) GenericAgent in the Webinterface How do I define a job that is not automatically scheduled? When I do not enter a schedule (default blank) it runs every 10 minutes. (I suppose the cron is running at this interval. Is this suppose to work this way? 2) Then the Times option, same interface. It says: 'Ticket created before X days'. I expect it to get tickets that are created more than, say, 2 days ago. When the job runs, it seems to ignore this option since all mails get filtered. What could be wrong here? 3) Filters What is the difference in using 'PostMaster Filter' in the web interface, and creating filters in the Config.pm? Is there some info available on how exactly they work? Are they exact matches, etc. I'm having some trouble using the filters.. For example: I have a filter that mail from 'queue1@example.com' places in queue 'queue1'. This works. Another filter places mail from 'queue2@example.com' in queue 'anotherqueue'. This also works. Finally I have a filter that filters out SPAM to the junk queue. This works if mail was sent to 'someotheraddess@example.com'. Problem is: SPAM mail sent to queue1@example.com and queue2@example.com is not matched as spam but placed in 'queue1' of 'anotherqueue'. I tried to play with the order of the filter in the Config.pm file, but that did not do the trick. Filters used: $Self->{'PostMaster::PreFilterModule'}->{'queue1'} = { Module => 'Kernel::System::PostMaster::Filter::Match', Match => { To => 'queue1@example.com', }, Set => { 'X-OTRS-Queue' => 'queue1', }, }; And another one like this, for 'anotherqueue'. $Self->{'PostMaster::PreFilterModule'}->{'spam'} = { Module => 'Kernel::System::PostMaster::Filter::Match', Match => { #Subject => '[SPAM?]', 'X-server-MailScanner-SpamScore' => 's', }, Set => { 'X-OTRS-Queue' => 'junk', 'X-OTRS-Priority' => '1 very low', 'X-OTRS-State' => 'open', }, }; How to catch SPAM mail send to queue1@example.com? Is there a way to use 'not' in the match? Then I could use 'from queue1@example.com' AND NOT spam. Thanks for your help! grtx,remi

Hi, remi schrieb:
Hi there,
I'm using OTRS for about a week now. So far I like it a lot. I'm planning to implement the software on our help desk in the coming days. I'd appreciate some help with these issues I'm running into.
I'm using ORTS 2.1.3 on Linux.
1) GenericAgent in the Webinterface How do I define a job that is not automatically scheduled? When I do not enter a schedule (default blank) it runs every 10 minutes. (I suppose the cron is running at this interval. Is this suppose to work this way?
You're right. Defining no time means always execute the job. Perhaps this behaviour should be changed in future releases. You can set the jobs you wan't to execute manually to "invalid". Or define you job within an extra generic-agent-config-file (not within the gui) and execute the generic agent with the use of the extra file in the shell.
2) Then the Times option, same interface. It says: 'Ticket created before X days'. I expect it to get tickets that are created more than, say, 2 days ago. When the job runs, it seems to ignore this option since all mails get filtered. What could be wrong here?
Don't know. Perhaps be more specific.
3) Filters What is the difference in using 'PostMaster Filter' in the web interface, and creating filters in the Config.pm?
Is there some info available on how exactly they work? Are they exact matches, etc.
I'm having some trouble using the filters.. For example:
I have a filter that mail from 'queue1@example.com' places in queue 'queue1'. This works. Another filter places mail from 'queue2@example.com' in queue 'anotherqueue'. This also works. Finally I have a filter that filters out SPAM to the junk queue. This works if mail was sent to 'someotheraddess@example.com'.
Problem is: SPAM mail sent to queue1@example.com and queue2@example.com is not matched as spam but placed in 'queue1' of 'anotherqueue'.
I tried to play with the order of the filter in the Config.pm file, but that did not do the trick.
Filters used: $Self->{'PostMaster::PreFilterModule'}->{'queue1'} = { Module => 'Kernel::System::PostMaster::Filter::Match', Match => { To => 'queue1@example.com', }, Set => { 'X-OTRS-Queue' => 'queue1', }, }; And another one like this, for 'anotherqueue'.
$Self->{'PostMaster::PreFilterModule'}->{'spam'} = { Module => 'Kernel::System::PostMaster::Filter::Match', Match => { #Subject => '[SPAM?]', 'X-server-MailScanner-SpamScore' => 's', }, Set => { 'X-OTRS-Queue' => 'junk', 'X-OTRS-Priority' => '1 very low', 'X-OTRS-State' => 'open', }, };
How to catch SPAM mail send to queue1@example.com?
The filters are applied in alphabetic order - rename your filters e.g. by prefixing numbers.
Is there a way to use 'not' in the match?
Yes, but only within a regex. I use ^(?:(?!\@augsburg\.de).)*$ to match all adresses NOT from @augsburg.de (isn't this regex horrible).
Then I could use 'from queue1@example.com' AND NOT spam.
Thanks for your help!
grtx,remi
Bye, Alex

Hi Alex,
You're right. Defining no time means always execute the job. Perhaps this behaviour should be changed in future releases. OK, thanks.
2) Then the Times option, same interface. It says: 'Ticket created before X days'. I expect it to get tickets that are created more than, say, 2 days ago. When the job runs, it seems to ignore this option since all mails get filtered. What could be wrong here?
Don't know. Perhaps be more specific. There is a setting in the GenericAgent setup called 'Times'. It's just above 'New Priority' in the web interface.
My question is, what option do I need to select there, to filter all tickets that have an age of 2 days or more.. I tried with no luck yet since all tickets were filtered.
The filters are applied in alphabetic order - rename your filters e.g. by prefixing numbers. Ah, this clears up some things :-) Thanks!
If a message matches a filter, does it go on and check the others? If so, then the spam-filter which moves it to the junk queue should be last I guess?
Yes, but only within a regex. I use
^(?:(?!\@augsburg\.de).)*$
to match all adresses NOT from @augsburg.de (isn't this regex horrible). I agree that this isn't the easiest way of writing it :-) I'll give it a try, if it works it'd be great.
Thanks for help! grtx,remi
participants (2)
-
Alexander Scholler
-
remi