diff --git a/include/class.mailer.php b/include/class.mailer.php
index a227b8fc52951c563d56ccd4d59684149ae15336..57242e61605b77f241c5ec09973d28a1518b4836 100644
--- a/include/class.mailer.php
+++ b/include/class.mailer.php
@@ -107,7 +107,20 @@ class Mailer {
                 'Date'=> date('D, d M Y H:i:s O'),
                 'Message-ID' => $messageId,
                 'X-Mailer' =>'osTicket Mailer'
-                );
+               );
+
+        //Set bulk/auto-response headers.
+        if($options && ($options['autoreply'] or $options['bulk'])) {
+            $headers+= array(
+                    'X-Autoreply' => 'yes',
+                    'X-Auto-Response-Suppress' => 'ALL, AutoReply',
+                    'Auto-Submitted' => 'auto-replied');
+
+            if($options['bulk']) 
+                $headers+= array('Precedence' => 'bulk');
+            else
+                $headers+= array('Precedence' => 'auto_reply');
+        }
 
         $mime = new Mail_mime();
         $mime->setTXTBody($body);
diff --git a/include/class.osticket.php b/include/class.osticket.php
index 86d206f212d6450db9755ac4f5c77926ff2a53c8..80d6216b14137f75dc41d30b8997c5f8ac64967f 100644
--- a/include/class.osticket.php
+++ b/include/class.osticket.php
@@ -242,7 +242,7 @@ class osTicket {
             $email=$this->getConfig()->getDefaultEmail(); //will take the default email.
 
         if($email) {
-            $email->send($to, $subject, $message);
+            $email->send($to, $subject, $message, null, array('bulk' => true));
         } else {//no luck - try the system mail.
             Email::sendmail($to, $subject, $message, sprintf('"osTicket Alerts"<%s>',$to));
         }
diff --git a/include/class.ticket.php b/include/class.ticket.php
index b4b7952b5f5740ab71301f324059a6eb7730eb98..d77291f0f9478dc3a28fec3b6f2ecacddbaaaf7f 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -868,7 +868,7 @@ class Ticket {
                 $msg['body'] ="\n$tag\n\n".$msg['body'];
             
             //TODO: add auto flags....be nice to mail servers and sysadmins!!
-            $email->send($this->getEmail(), $msg['subj'], $msg['body']);
+            $email->send($this->getEmail(), $msg['subj'], $msg['body'], null, array('autoreply' => true));
         }
         
         if(!($email=$cfg->getAlertEmail()))
@@ -885,7 +885,7 @@ class Ticket {
             //Alert admin??
             if($cfg->alertAdminONNewTicket()) {
                 $alert = str_replace('%{recipient}', 'Admin', $msg['body']);
-                $email->send($cfg->getAdminEmail(), $msg['subj'], $alert);
+                $email->send($cfg->getAdminEmail(), $msg['subj'], $alert, null, array('bulk' => true));
                 $sentlist[]=$cfg->getAdminEmail();
             }
               
@@ -901,7 +901,7 @@ class Ticket {
             foreach( $recipients as $k=>$staff){
                 if(!is_object($staff) || !$staff->isAvailable() || in_array($staff->getEmail(),$sentlist)) continue;
                 $alert = str_replace('%{recipient}', $staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, null, array('bulk' => true));
                 $sentlist[] = $staff->getEmail();
             }
            
@@ -934,7 +934,7 @@ class Ticket {
             $msg = $this->replaceVars($msg, 
                         array('signature' => ($dept && $dept->isPublic())?$dept->getSignature():''));
             
-            $email->send($this->getEmail(), $msg['subj'], $msg['body']);
+            $email->send($this->getEmail(), $msg['subj'], $msg['body'], null, array('bulk' => true));
         }
 
         $client= $this->getClient();
@@ -997,7 +997,7 @@ class Ticket {
             if($cfg->stripQuotedReply() && ($tag=$cfg->getReplySeparator()))
                 $msg['body'] ="\n$tag\n\n".$msg['body'];
         
-            $email->send($this->getEmail(), $msg['subj'], $msg['body']);
+            $email->send($this->getEmail(), $msg['subj'], $msg['body'], null, array('autoreply'=>true));
         }
     }
 
@@ -1056,7 +1056,7 @@ class Ticket {
             foreach( $recipients as $k=>$staff) {
                 if(!is_object($staff) || !$staff->isAvailable() || in_array($staff->getEmail(),$sentlist)) continue;
                 $alert = str_replace('%{recipient}', $staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, null, array('autoreply' => true));
                 $sentlist[] = $staff->getEmail();
             }
         }
@@ -1109,7 +1109,7 @@ class Ticket {
             foreach( $recipients as $k=>$staff){
                 if(!is_object($staff) || !$staff->isAvailable() || in_array($staff->getEmail(),$sentlist)) continue;
                 $alert = str_replace("%{recipient}", $staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, null, array('bulk' => true));
                 $sentlist[] = $staff->getEmail();
             }
 
@@ -1294,7 +1294,7 @@ class Ticket {
             foreach( $recipients as $k=>$staff){
                 if(!is_object($staff) || !$staff->isAvailable() || in_array($staff->getEmail(),$sentlist)) continue;
                 $alert = str_replace('%{recipient}',$staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, null, array('bulk' => true));
                 $sentlist[] = $staff->getEmail();
             }
          }
@@ -1453,7 +1453,7 @@ class Ticket {
             foreach( $recipients as $k=>$staff){
                 if(!$staff || !$staff->getEmail() || !$staff->isAvailable() || in_array($staff->getEmail(), $sentlist)) continue;
                 $alert = str_replace('%{recipient}', $staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, null, array('bulk' => true));
                 $sentlist[] = $staff->getEmail();
             }
         }
@@ -1503,7 +1503,7 @@ class Ticket {
                 $msg['body'] ="\n$tag\n\n".$msg['body'];
 
             $attachments =($cfg->emailAttachments() && $files)?$this->getAttachments($respId, 'R'):array();
-            $email->send($this->getEmail(), $msg['subj'], $msg['body'], $attachments);
+            $email->send($this->getEmail(), $msg['subj'], $msg['body'], $attachments, array('autoreply' => true));
         }
 
         return $respId;
@@ -1717,7 +1717,7 @@ class Ticket {
                 if(!$staff || !is_object($staff) || !$staff->getEmail() || !$staff->isAvailable()) continue;
                 if(in_array($staff->getEmail(),$sentlist) || ($staffId && $staffId==$staff->getId())) continue; 
                 $alert = str_replace('%{recipient}',$staff->getFirstName(), $msg['body']);
-                $email->send($staff->getEmail(), $msg['subj'], $alert, $attachments);
+                $email->send($staff->getEmail(), $msg['subj'], $alert, $attachments, array('bulk' => true));
                 $sentlist[] = $staff->getEmail();
             }
         }
@@ -2312,7 +2312,7 @@ class Ticket {
                 $msg['body'] ="\n$tag\n\n".$msg['body'];
 
             $attachments =($cfg->emailAttachments() && $respId)?$ticket->getAttachments($respId,'R'):array();
-            $email->send($ticket->getEmail(), $msg['subj'], $msg['body'], $attachments);
+            $email->send($ticket->getEmail(), $msg['subj'], $msg['body'], $attachments, array('bulk' => true));
         }
 
         return $ticket;
diff --git a/include/class.upgrader.php b/include/class.upgrader.php
index 012f88d1160bea1fb09d2104129d19e8fccebd3e..265ae7c9a5b298f47fd6f0de9bff066e8304ddcb 100644
--- a/include/class.upgrader.php
+++ b/include/class.upgrader.php
@@ -67,7 +67,7 @@ class Upgrader extends SetupWizard {
 
         $subject = 'Upgrader Error';
         if($email) {
-            $email->send($thisstaff->getEmail(), $subject, $error);
+            $email->send($thisstaff->getEmail(), $subject, $error, null, array('bulk' => true));
         } else {//no luck - try the system mail.
             Mailer::sendmail($thisstaff->getEmail(), $subject, $error, sprintf('"osTicket Alerts"<%s>', $thisstaff->getEmail()));
         }