Hallo,

hab da einen kleinen Patch vorbereitet (attached). Dieser erlaubt es, wenn die Konfigurationsoption $Self->{'FollowUpCanChangeQueue'} = 1; gesetzt ist, dass X-OTRS-Queue header in FollowUps die Queue des Tickets �ndern.

Patch ist f�r OTRS 1.3.2-01 und ver�ndert:
Kernel/System/PostMaster.pm
Kernel/Config/Defaults.pm

Anwendugsbeispiel: Typischer Spam
Bei typischem Spam werden SPAM Mails von einer nicht erreichbaren Absendeadresse �ber offene Relays verschickt. Besitzt eine Queue eine Autoantwort, so kommt eine Fehlermeldung zur�ck (Nicht erreichbar etc.). Wenn mann nun diesen Patch anwendet, $Self->{'FollowUpCanChangeQueue'} = 1 setzt kann man einen Procmail Filter vorschalten kann so SPAM teilweise automatisch eingeordnet werden. Der Procmail Filter klassifiziert EMails nach typischen "nicht Erreichbar" Merkmalen und setzt die X-OTRS-Queue auf z.B. "Junk". Damit werden quasi automatisch SPAM emails erkannt und in eine Queue einsortiert, wenn dies auch ein eher pragmatischer Ansatz ist :)


Diese "Junk" Queue kann mann dann durch einen Gernericagent Job l�schen lassen (oder was mann eben sonst machen will, vielleicht Verklagen ? :).

Problematisch sind Antworten von Mailservern, die die Ticketnummer aus dem Subject nehmen. Hier muss eventuell noch in PostMaster->CheckFollowUp ein multipart message scan eingebaut werden. Typischerweise ist in solchen F�llen die Original EMail (die nicht versand werden konnte) als MultiPart Attachment der Fehlermeldung angehangen.

Bye,

Robert Heinzmann

p.s. Sollte das eher an [EMAIL PROTECTED] ?

Robert Heinzmann wrote:
Hallo Marc,

klingt gut. Bin ich auch dran interessiert. Leider haben wir so etwas noch nicht implementiert.

Mann k�nnte ja mal versuchem mit den X-OTRS Headern zu arbeiten. Procmail Filter vor, der sucht nach "Undeliver..." und setzt dann den X-OTRS-Queue header. Der Interessante Punkt hier ist, ob ein Ticket was es schon gibt, dann auch mit in die Queue wandert. Leider kann ich das derzeit nicht ausprobieren, aber vielleicht hast du ja Zeit *G* :)

Bye,

Robert Heinzmann

Marc Schlaile wrote:

--- opt/otrs.orig/Kernel/System/PostMaster.pm   2004-10-18 12:14:00.000000000 
+0200
+++ opt/otrs/Kernel/System/PostMaster.pm        2005-02-05 12:06:11.000000000 
+0100
@@ -224,6 +224,42 @@
               State => $Self->{ConfigObject}->Get('PostmasterFollowUpState') 
|| 'open',
               AutoResponseType => 'auto follow up',
             );
+            # Can a X-OTRS-Queue header in the follow up change the queue for 
the ticket ?
+            if ($Self->{ConfigObject}->Get('FollowUpCanChangeQueue')) {
+                # check if trusted returns a new queue id
+                my $TQueueID = $Self->{DestQueueObject}->GetTrustedQueueID(
+                    Params => $GetParam,
+                );
+                # X-OTRS-Queue exists
+                my $TicketQueueID = 
$Self->{TicketObject}->TicketQueueID(TicketID => $TicketID,);
+                if ($TQueueID) {
+                    # Only move if not already in X-OTRS-Queue target queue
+                    if ($TicketQueueID ne $TQueueID) {
+                        # Move the ticket to the new Queue
+                        $Self->{TicketObject}->MoveTicket(
+                            QueueID => $TQueueID,
+                            TicketID => $TicketID,
+                            UserID => $Self->{PostmasterUserID},
+                        );
+                        $Self->{LogObject}->Log(
+                            Priority => 'notice', 
+                            Message => "Moved Ticket $Tn (ID:$TicketID) to 
queue $GetParam->{'X-OTRS-Queue'} (ID: $TQueueID) (X-OTRS-Queue header)",
+                        );
+                    } else {
+                        # ticket already in X-OTRS-Queue 
+                        $Self->{LogObject}->Log(
+                                Priority => 'notice', 
+                                Message => "Ticket $Tn (ID:$TicketID) already 
in queue $GetParam->{'X-OTRS-Queue'} (ID: $TQueueID) (X-OTRS-Queue header), not 
moved",
+                        );
+                    }
+                } else {
+                    # Queue of X-OTRS-Queue header not found
+                    $Self->{LogObject}->Log(
+                            Priority => 'error',
+                            Message => "Queue \"$GetParam->{'X-OTRS-Queue'}\" 
from X-OTRS-Queue mail header not found",
+                    );                          
+                }
+            }
         }
     }
     # create new ticket
--- opt/otrs.orig/Kernel/Config/Defaults.pm     2004-10-18 12:14:00.000000000 
+0200
+++ opt/otrs/Kernel/Config/Defaults.pm  2005-02-05 12:10:57.000000000 +0100
@@ -1071,6 +1071,9 @@
     # (The state if a ticket got a follow up.) [default: open]
     $Self->{PostmasterFollowUpState} = 'open';
 
+    # FollowUpCanChangeQueue: Can a X-OTRS-Queue header in the follow up 
change the Queue ? [1/0] default: 0
+    $Self->{'FollowUpCanChangeQueue'} = 0;
+
     # X-Header
     # (All scanned x-headers.)
     $Self->{'PostmasterX-Header'} = [
_______________________________________________
OTRS Mailingliste: otrs-de - Webpage: http://otrs.org/
Archiv: http://lists.otrs.org/pipermail/otrs-de/
Listenabo verwalten: http://lists.otrs.org/cgi-bin/listinfo/otrs-de/
Support oder Consulting fuer Ihr OTRS System?
=> http://www.otrs.de/

Antwort per Email an