MDL-52780 email: Added better script origin email header
authorBrendan Heywood <brendan@catalyst-au.net>
Fri, 15 Jan 2016 10:40:56 +0000 (21:40 +1100)
committerBrendan Heywood <brendan@catalyst-au.net>
Sun, 17 Jan 2016 21:12:49 +0000 (08:12 +1100)
lib/moodlelib.php

index 5638971..e185572 100644 (file)
@@ -5589,6 +5589,25 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '',
         }
     }
 
+    // If the X-PHP-Originating-Script email header is on then also add an additional
+    // header with details of where exactly in moodle the email was triggered from,
+    // either a call to message_send() or to email_to_user().
+    if (ini_get('mail.add_x_header')) {
+
+        $stack = debug_backtrace(false);
+        $origin = $stack[0];
+
+        foreach ($stack as $depth => $call) {
+            if ($call['function'] == 'message_send') {
+                $origin = $call;
+            }
+        }
+
+        $originheader = $CFG->wwwroot . ' => ' . gethostname() . ':'
+             . str_replace($CFG->dirroot . '/', '', $origin['file']) . ':' . $origin['line'];
+        $mail->addCustomHeader('X-Moodle-Originating-Script: ' . $originheader);
+    }
+
     if (!empty($from->priority)) {
         $mail->Priority = $from->priority;
     }