set Sender: like From: to avoid Outlook drain bramage, RT#20825
authorIvan Kohler <ivan@freeside.biz>
Sun, 20 Jan 2013 01:28:38 +0000 (17:28 -0800)
committerIvan Kohler <ivan@freeside.biz>
Sun, 20 Jan 2013 01:28:38 +0000 (17:28 -0800)
rt/lib/RT/Action/SendEmail.pm

index 189b999..da9930c 100755 (executable)
@@ -851,6 +851,9 @@ sub SetReturnAddress {
     }
 
     unless ( $self->TemplateObj->MIMEObj->head->get('From') ) {
+
+        my $from = $replyto;
+
         if ( RT->Config->Get('UseFriendlyFromLine') ) {
             my $friendly_name = $args{friendly_name};
 
@@ -862,19 +865,22 @@ sub SetReturnAddress {
             }
 
             $friendly_name =~ s/"/\\"/g;
-            $self->SetHeader(
-                'From',
+            $from =
                 sprintf(
                     RT->Config->Get('FriendlyFromLineFormat'),
                     $self->MIMEEncodeString(
                         $friendly_name, RT->Config->Get('EmailOutputEncoding')
                     ),
                     $replyto
-                ),
-            );
-        } else {
-            $self->SetHeader( 'From', $replyto );
+                );
         }
+
+        $self->SetHeader( 'From', $from );
+
+        #also set Sender:, otherwise MTAs add a nonsensical value like
+        # rt@machine, and then Outlook prepends "rt@machine on behalf of" to
+        # the From: header
+        $self->SetHeader( 'Sender', $from );
     }
 
     unless ( $self->TemplateObj->MIMEObj->head->get('Reply-To') ) {