in reply to Re: Sorting and deleting spam emails in the RT queue
in thread Sorting and deleting spam emails in the RT queue

Dear Monk, Apologise for the unlcear question and thank you for your time in replying. Here what i am trying to do. Recently we have started using Resource tracker to sort the incoming emails and assign it to different teams. Say with the key word in the subject we are sorting the emails from general to different queue names. Now i want to write a script to delete messages in the queue with specific "Key words" or specific email address it came from. So the two variables are array of 'key words' and array of 'to address'. I am using this below script to categorise them as "messages to be deleted" and manually deleting it. for example, my $match = ".*weekly message.*"; my $t_subject = $self->TicketObj->Subject; if ( $t_subject !~ /$match/i ) { return 0; } else { return 1; } my $newqueue = "To be deleted"; my $T_Obj = $self->TicketObj; $RT::Logger->info("Auto assign ticket #". $T_Obj->id ." to queue #". $newqueue ); my ($status, $msg) = $T_Obj->SetQueue($newqueue); unless ($status) { $RT::Logger->warning("unable to set new queue: $msg"); return undef; } return 1; But would like to code a script that could delete those emails within the key word ranhe automatically.. Thanks
  • Comment on Re^2: Sorting and deleting spam emails in the RT queue

Replies are listed 'Best First'.
Re^3: Sorting and deleting spam emails in the RT queue
by roboticus (Chancellor) on Dec 15, 2010 at 11:41 UTC

    brainfold:

    First, my habitual reminder: Please use code tags! It's really easy: <c>Code goes here</c> see? This is what your post could look like with them:

    my $match = ".*weekly message.*"; my $t_subject = $self->TicketObj->Subject; if ( $t_subject !~ /$match/i ) { return 0; } else { return 1; } my $newqueue = "To be deleted"; my $T_Obj = $self->TicketObj; $RT::Logger->info("Auto assign ticket #". $T_Obj->id ." to queue #". $ +newqueue ); my ($status, $msg) = $T_Obj->SetQueue($newqueue); unless ($status) { $RT::Logger->warning("unable to set new queue: $msg"); return undef; } return 1;

    Anyway, I just wanted to mention that if you're not using the beginning of line (^) or end of line ($) anchors, your use of .* is irrelevant.

    And now, on to yur question. I interpret it to mean "OK, now that I've identified which EMails I need to delete, how do I do it automatically?" If that's the correct question, then I'd have to reply with: What package/module are you using to talk with your EMail queue? It may have the methods you want. I'm nearly certain that if your EMail server provides IMAP that there's a module that will let you delete individual messages.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

    Update: I see that you're using code tags properly later in the thread. Did you know that since you're logged in you can go back and update a post? That way, when you do something like figure out how code tags work, or want to improve a question to get better responses, you can do so.