[Rt-commit] rt branch, 3.8-trunk, updated. rt-3.8.6-79-gd3e0842

sartak at bestpractical.com sartak at bestpractical.com
Fri Nov 6 15:49:15 EST 2009


The branch, 3.8-trunk has been updated
       via  d3e08429723d85804365820f08e00d26173f08bf (commit)
       via  7c7494de7508343948e750db6210f7fb12bca9d8 (commit)
       via  177b396f8889db717a972e1fe5c42e4b4573eed9 (commit)
       via  cb9b2716a21a92f288f62548386a4ed2dbcb1e6f (commit)
       via  faa431530cb245fa2b9dfc6f2f31480b2550aaae (commit)
      from  0181edeef105bb8ca53002375368222c86962521 (commit)

Summary of changes:
 etc/RT_Config.pm.in       |   24 ++++++++++++++++++++++
 lib/RT/Interface/Email.pm |   48 ++++++++++++++++++++++++++++++++++----------
 2 files changed, 61 insertions(+), 11 deletions(-)

- Log -----------------------------------------------------------------
commit faa431530cb245fa2b9dfc6f2f31480b2550aaae
Author: Carlos Fuentes Bermejo <carlos.fuentes at rediris.es>
Date:   Fri Nov 6 15:33:11 2009 -0500

    If there is no ticket for outgoing mail, check a new configuration option for the From address

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 1933c12..1503376 100755
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -372,6 +372,29 @@ if you use 'sendmail' rather than 'sendmailpipe'
 
 Set($MailCommand , 'sendmailpipe');
 
+=item C<$SetOutgoingMailFrom>
+
+C<$SetOutgoingMailFrom> enables that RT sets the sender envelope with
+the
+correspond mail address of the ticket's queue.
+
+Warning: If you use RT in this way, you should know that bounce mails
+will
+be incoming to the system, and creating new tickets.
+=cut
+
+Set ($SetOutgoingMailFrom, 1);
+
+=item C<$OverrideOutgoingMailFrom>
+
+C<$OverrideOutgoingMailFrom> is used for overwriting the Correspond
+address of the queue.
+
+=cut
+Set($OverrideOutgoingMailFrom, {
+}
+);
+
 =back
 
 =head1 Sendmail Configuration
diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index 1279816..0396935 100755
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -382,12 +382,35 @@ sub SendEmail {
     # if it is a sub routine, we just return it;
     return $mail_command->($args{'Entity'}) if UNIVERSAL::isa( $mail_command, 'CODE' );
 
+    my $ticketObj = $args{'Ticket'};
+    my $transactionObj = $args{'Transaction'};
+
     if ( $mail_command eq 'sendmailpipe' ) {
         my $path = RT->Config->Get('SendmailPath');
         my $args = RT->Config->Get('SendmailArguments');
-        $args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'};
-
-        # VERP
+	
+	# SetOutgoingMailFrom
+	
+	my $outgoingMailAddress;
+	if ( RT->Config->Get('SetOutgoingMailFrom') ) {
+		if ( defined $ticketObj ){
+			my $queueName = $ticketObj->QueueObj->Name;
+			if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName}) {
+				$outgoingMailAddress = $ticketObj->QueueObj->CorrespondAddress;
+			} else {
+				$outgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName};
+			}
+			$args .= ' -f '.$outgoingMailAddress;
+		} elsif (RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'} ) {
+			$outgoingMailAddress  = RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'};
+			$args .= ' -f '.$outgoingMailAddress;
+		}
+	}
+
+	# Set Bounce Arguments
+	$args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'};
+	
+	# VERP
         if ( $args{'Transaction'} and
              my $prefix = RT->Config->Get('VERPPrefix') and
              my $domain = RT->Config->Get('VERPDomain') )

commit cb9b2716a21a92f288f62548386a4ed2dbcb1e6f
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Fri Nov 6 15:36:15 2009 -0500

    Documentation tweaks for new OutgoingMailFrom config

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 1503376..3481f94 100755
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -374,26 +374,27 @@ Set($MailCommand , 'sendmailpipe');
 
 =item C<$SetOutgoingMailFrom>
 
-C<$SetOutgoingMailFrom> enables that RT sets the sender envelope with
-the
-correspond mail address of the ticket's queue.
+C<$SetOutgoingMailFrom> tells RT to set the sender envelope with the correspond
+mail address of the ticket's queue.
+
+Warning: If you use this setting, bounced mails will appear to be incoming
+mail to the system, thus creating new tickets.
 
-Warning: If you use RT in this way, you should know that bounce mails
-will
-be incoming to the system, and creating new tickets.
 =cut
 
-Set ($SetOutgoingMailFrom, 1);
+Set($SetOutgoingMailFrom, 0);
 
 =item C<$OverrideOutgoingMailFrom>
 
 C<$OverrideOutgoingMailFrom> is used for overwriting the Correspond
-address of the queue.
+address of the queue. The option is a hash reference of queue name to
+email address.
 
 =cut
+
 Set($OverrideOutgoingMailFrom, {
-}
-);
+#    'General' => 'general at rt.example.com',
+});
 
 =back
 

commit 177b396f8889db717a972e1fe5c42e4b4573eed9
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Fri Nov 6 15:40:12 2009 -0500

    Pluck Ticket and Transaction out of %args sooner

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index 0396935..ba15d3a 100755
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -315,6 +315,10 @@ sub SendEmail {
         Transaction => undef,
         @_,
     );
+
+    my $TicketObj = $args{'Ticket'};
+    my $TransactionObj = $args{'Transaction'};
+
     foreach my $arg( qw(Entity Bounce) ) {
         next unless defined $args{ lc $arg };
 
@@ -339,26 +343,26 @@ sub SendEmail {
         return -1;
     }
 
-    if ( $args{'Transaction'} && !$args{'Ticket'}
-        && $args{'Transaction'}->ObjectType eq 'RT::Ticket' )
+    if ( $TransactionObj && !$TicketObj
+        && $TransactionObj->ObjectType eq 'RT::Ticket' )
     {
-        $args{'Ticket'} = $args{'Transaction'}->Object;
+        $TicketObj = $TransactionObj->Object;
     }
 
     if ( RT->Config->Get('GnuPG')->{'Enable'} ) {
         my %crypt;
 
         my $attachment;
-        $attachment = $args{'Transaction'}->Attachments->First
-            if $args{'Transaction'};
+        $attachment = $TransactionObj->Attachments->First
+            if $TransactionObj;
 
         foreach my $argument ( qw(Sign Encrypt) ) {
             next if defined $args{ $argument };
 
             if ( $attachment && defined $attachment->GetHeader("X-RT-$argument") ) {
                 $crypt{$argument} = $attachment->GetHeader("X-RT-$argument");
-            } elsif ( $args{'Ticket'} ) {
-                $crypt{$argument} = $args{'Ticket'}->QueueObj->$argument();
+            } elsif ( $TicketObj ) {
+                $crypt{$argument} = $TicketObj->QueueObj->$argument();
             }
         }
 
@@ -382,21 +386,18 @@ sub SendEmail {
     # if it is a sub routine, we just return it;
     return $mail_command->($args{'Entity'}) if UNIVERSAL::isa( $mail_command, 'CODE' );
 
-    my $ticketObj = $args{'Ticket'};
-    my $transactionObj = $args{'Transaction'};
-
     if ( $mail_command eq 'sendmailpipe' ) {
         my $path = RT->Config->Get('SendmailPath');
         my $args = RT->Config->Get('SendmailArguments');
-	
+
 	# SetOutgoingMailFrom
-	
+
 	my $outgoingMailAddress;
 	if ( RT->Config->Get('SetOutgoingMailFrom') ) {
-		if ( defined $ticketObj ){
-			my $queueName = $ticketObj->QueueObj->Name;
+		if ( defined $TicketObj ){
+			my $queueName = $TicketObj->QueueObj->Name;
 			if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName}) {
-				$outgoingMailAddress = $ticketObj->QueueObj->CorrespondAddress;
+				$outgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress;
 			} else {
 				$outgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName};
 			}
@@ -409,13 +410,13 @@ sub SendEmail {
 
 	# Set Bounce Arguments
 	$args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'};
-	
+
 	# VERP
-        if ( $args{'Transaction'} and
+        if ( $TransactionObj and
              my $prefix = RT->Config->Get('VERPPrefix') and
              my $domain = RT->Config->Get('VERPDomain') )
         {
-            my $from = $args{'Transaction'}->CreatorObj->EmailAddress;
+            my $from = $TransactionObj->CreatorObj->EmailAddress;
             $from =~ s/@/=/g;
             $from =~ s/\s//g;
             $args .= " -f $prefix$from\@$domain";

commit 7c7494de7508343948e750db6210f7fb12bca9d8
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Fri Nov 6 15:44:53 2009 -0500

    Use spaces for indentation not tabs

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index ba15d3a..f2a978a 100755
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -390,28 +390,28 @@ sub SendEmail {
         my $path = RT->Config->Get('SendmailPath');
         my $args = RT->Config->Get('SendmailArguments');
 
-	# SetOutgoingMailFrom
-
-	my $outgoingMailAddress;
-	if ( RT->Config->Get('SetOutgoingMailFrom') ) {
-		if ( defined $TicketObj ){
-			my $queueName = $TicketObj->QueueObj->Name;
-			if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName}) {
-				$outgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress;
-			} else {
-				$outgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName};
-			}
-			$args .= ' -f '.$outgoingMailAddress;
-		} elsif (RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'} ) {
-			$outgoingMailAddress  = RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'};
-			$args .= ' -f '.$outgoingMailAddress;
-		}
-	}
-
-	# Set Bounce Arguments
-	$args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'};
-
-	# VERP
+    # SetOutgoingMailFrom
+
+    my $outgoingMailAddress;
+    if ( RT->Config->Get('SetOutgoingMailFrom') ) {
+        if ( defined $TicketObj ){
+            my $queueName = $TicketObj->QueueObj->Name;
+            if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName}) {
+                $outgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress;
+            } else {
+                $outgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName};
+            }
+            $args .= ' -f '.$outgoingMailAddress;
+        } elsif (RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'} ) {
+            $outgoingMailAddress  = RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'};
+            $args .= ' -f '.$outgoingMailAddress;
+        }
+    }
+
+    # Set Bounce Arguments
+    $args .= ' '. RT->Config->Get('SendmailBounceArguments') if $args{'Bounce'};
+
+    # VERP
         if ( $TransactionObj and
              my $prefix = RT->Config->Get('VERPPrefix') and
              my $domain = RT->Config->Get('VERPDomain') )

commit d3e08429723d85804365820f08e00d26173f08bf
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Fri Nov 6 15:48:24 2009 -0500

    More cleanup

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index f2a978a..97fe2a8 100755
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -392,20 +392,22 @@ sub SendEmail {
 
     # SetOutgoingMailFrom
 
-    my $outgoingMailAddress;
     if ( RT->Config->Get('SetOutgoingMailFrom') ) {
-        if ( defined $TicketObj ){
-            my $queueName = $TicketObj->QueueObj->Name;
-            if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName}) {
-                $outgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress;
+        my $OutgoingMailAddress;
+
+        if ($TicketObj) {
+            my $QueueName = $TicketObj->QueueObj->Name;
+            if (not defined RT->Config->Get('OverrideOutgoingMailFrom')->{$QueueName}) {
+                $OutgoingMailAddress = $TicketObj->QueueObj->CorrespondAddress;
             } else {
-                $outgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$queueName};
+                $OutgoingMailAddress = RT->Config->Get('OverrideOutgoingMailFrom')->{$QueueName};
             }
-            $args .= ' -f '.$outgoingMailAddress;
-        } elsif (RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'} ) {
-            $outgoingMailAddress  = RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'};
-            $args .= ' -f '.$outgoingMailAddress;
         }
+
+        $OutgoingMailAddress ||= RT->Config->Get('OverrideOutgoingMailFrom')->{'Default'};
+
+        $args .= ' -f ' . $OutgoingMailAddress
+            if $OutgoingMailAddress;
     }
 
     # Set Bounce Arguments

-----------------------------------------------------------------------


More information about the Rt-commit mailing list