diff --git a/server/lib/classes/ispcmail.inc.php b/server/lib/classes/ispcmail.inc.php index fbf5f84dcae2f0d8104f1cb540c66d5a69dadf49..2b3dc78cfc66658136443a4367e22caad0c49b71 100644 --- a/server/lib/classes/ispcmail.inc.php +++ b/server/lib/classes/ispcmail.inc.php @@ -824,8 +824,7 @@ class ispcmail { else $rec_string .= $recip; } $to = $this->_encodeHeader($rec_string, $this->mail_charset); - //$result = mail($to, $subject, $this->body, implode($this->_crlf, $headers)); - $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers)); + $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers), "-f $this->_mail_sender"); } // Reset the subject in case mail is resent diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 31e36836d55580d2bae6dcda9f22a7fdeed3c886..dbe702d0dd2473a898c3b11602a23d21c788a071 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -812,7 +812,7 @@ class monitor_tools { } public function send_notification_email($template, $placeholders, $recipients) { - global $conf; + global $app, $conf; if(!is_array($recipients) || count($recipients) < 1) return false; if(!is_array($placeholders)) $placeholders = array(); @@ -829,6 +829,7 @@ class monitor_tools { //* get mail headers, subject and body $mailHeaders = ''; + $mailFrom = ''; $mailBody = ''; $mailSubject = ''; $inHeader = true; @@ -844,6 +845,16 @@ class monitor_tools { $mailSubject = trim($parts[1]); continue; } + if(strtolower($parts[0]) == 'From') { + $mailFrom = trim($parts[1]); + continue; + } + if(strtolower($parts[0]) == 'Cc') { + if (! in_array(trim($parts[1]), $recipients)) { + $recipients[] = trim($parts[1]); + } + continue; + } unset($parts); $mailHeaders .= trim($lines[$l]) . "\n"; } else { @@ -854,18 +865,14 @@ class monitor_tools { //* Replace placeholders $mailHeaders = strtr($mailHeaders, $placeholders); + $mailFrom = strtr($mailFrom, $placeholders); $mailSubject = strtr($mailSubject, $placeholders); $mailBody = strtr($mailBody, $placeholders); for($r = 0; $r < count($recipients); $r++) { - $app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); + $app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailFrom); } - unset($mailSubject); - unset($mailHeaders); - unset($mailBody); - unset($lines); - return true; }