Now emails use the new supportemail, supportname and supportpage settings in emails...
authormoodler <moodler>
Wed, 1 Aug 2007 09:00:21 +0000 (09:00 +0000)
committermoodler <moodler>
Wed, 1 Aug 2007 09:00:21 +0000 (09:00 +0000)
lib/moodlelib.php

index 90b7506a145bed191d829ead545aa16ccb586b95..e800ec7e60dcfe409f46442b464faa7aa3e0ce27 100644 (file)
@@ -3444,15 +3444,15 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a
         }
     }
 
-    $adminuser = get_admin();
+    $supportuser = generate_email_supportuser();
+
 
     // make up an email address for handling bounces
     if (!empty($CFG->handlebounces)) {
         $modargs = 'B'.base64_encode(pack('V',$user->id)).substr(md5($user->email),0,16);
         $mail->Sender = generate_email_processing_address(0,$modargs);
-    }
-    else {
-        $mail->Sender   = $adminuser->email;
+    } else {
+        $mail->Sender   = $supportuser->email;
     }
 
     if (is_string($from)) { // So we can pass whatever we want if there is need
@@ -3505,7 +3505,7 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a
 
     if ($attachment && $attachname) {
         if (ereg( "\\.\\." ,$attachment )) {    // Security check for ".." in dir path
-            $mail->AddAddress($adminuser->email, fullname($adminuser) );
+            $mail->AddAddress($supportuser->email, fullname($supportuser, true) );
             $mail->AddStringAttachment('Error in attachment.  User attempted to attach a filename with a unsafe name.', 'error.txt', '8bit', 'text/plain');
         } else {
             require_once($CFG->libdir.'/filelib.php');
@@ -3564,6 +3564,49 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a
     }
 }
 
+/**
+ * Generate a signoff for emails based on support settings
+ *
+ */
+function generate_email_signoff() {
+    global $CFG;
+
+    $signoff = "\n";
+    if (!empty($CFG->supportname)) {
+        $signoff .= $CFG->supportname."\n";
+    }
+    if (!empty($CFG->supportemail)) {
+        $signoff .= $CFG->supportemail."\n";
+    }
+    if (!empty($CFG->supportpage)) {
+        $signoff .= $CFG->supportpage."\n";
+    }
+    return $signoff;
+}
+
+/**
+ * Generate a fake user for emails based on support settings
+ *
+ */
+function generate_email_supportuser() {
+
+    global $CFG;
+
+    static $supportuser;
+
+    if (!empty($supportuser)) {
+        return $supportuser;
+    }
+
+    $supportuser = new object;
+    $supportuser->email = $CFG->supportemail ? $CFG->supportemail : $CFG->noreplyaddress;
+    $supportuser->firstname = $CFG->supportname ? $CFG->supportname : get_string('noreplyname');
+    $supportuser->lastname = '';
+
+    return $supportuser;
+}
+
+
 /**
  * Sets specified user's password and send the new password to the user via email.
  *
@@ -3577,7 +3620,8 @@ function setnew_password_and_mail($user) {
     global $CFG;
 
     $site  = get_site();
-    $from = get_admin();
+
+    $supportuser = generate_email_supportuser();
 
     $newpassword = generate_password();
 
@@ -3587,18 +3631,18 @@ function setnew_password_and_mail($user) {
     }
 
     $a = new object();
-    $a->firstname   = $user->firstname;
+    $a->firstname   = fullname($user, true);
     $a->sitename    = format_string($site->fullname);
     $a->username    = $user->username;
     $a->newpassword = $newpassword;
     $a->link        = $CFG->wwwroot .'/login/';
-    $a->signoff     = fullname($from, true).' ('. $from->email .')';
+    $a->signoff     = generate_email_signoff();
 
     $message = get_string('newusernewpasswordtext', '', $a);
 
     $subject  = format_string($site->fullname) .': '. get_string('newusernewpasswordsubj');
 
-    return email_to_user($user, $from, $subject, $message);
+    return email_to_user($user, $supportuser, $subject, $message);
 
 }
 
@@ -3615,7 +3659,7 @@ function reset_password_and_mail($user) {
     global $CFG;
 
     $site  = get_site();
-    $from = get_admin();
+    $supportuser = generate_email_supportuser();
 
     $userauth = get_auth_plugin($user->auth);
     if (!$userauth->can_reset_password() or !is_enabled_auth($user->auth)) {
@@ -3635,13 +3679,13 @@ function reset_password_and_mail($user) {
     $a->username = $user->username;
     $a->newpassword = $newpassword;
     $a->link = $CFG->httpswwwroot .'/login/change_password.php';
-    $a->signoff = fullname($from, true).' ('. $from->email .')';
+    $a->signoff = generate_email_signoff();
 
     $message = get_string('newpasswordtext', '', $a);
 
     $subject  = format_string($site->fullname) .': '. get_string('changedpassword');
 
-    return email_to_user($user, $from, $subject, $message);
+    return email_to_user($user, $supportuser, $subject, $message);
 
 }
 
@@ -3658,12 +3702,12 @@ function reset_password_and_mail($user) {
     global $CFG;
 
     $site = get_site();
-    $from = get_admin();
+    $supportuser = generate_email_supportuser();
 
     $data = new object();
     $data->firstname = fullname($user);
     $data->sitename = format_string($site->fullname);
-    $data->admin = fullname($from) .' ('. $from->email .')';
+    $data->admin = generate_email_signoff();
 
     $subject = get_string('emailconfirmationsubject', '', format_string($site->fullname));
 
@@ -3673,7 +3717,7 @@ function reset_password_and_mail($user) {
 
     $user->mailformat = 1;  // Always send HTML version as well
 
-    return email_to_user($user, $from, $subject, $message, $messagehtml);
+    return email_to_user($user, $supportuser, $subject, $message, $messagehtml);
 
 }
 
@@ -3690,18 +3734,18 @@ function send_password_change_confirmation_email($user) {
     global $CFG;
 
     $site = get_site();
-    $from = get_admin();
+    $supportuser = generate_email_supportuser();
 
     $data = new object();
     $data->firstname = $user->firstname;
     $data->sitename = format_string($site->fullname);
     $data->link = $CFG->httpswwwroot .'/login/forgot_password.php?p='. $user->secret .'&s='. urlencode($user->username);
-    $data->admin = fullname($from).' ('. $from->email .')';
+    $data->admin = generate_email_signoff();
 
     $message = get_string('emailpasswordconfirmation', '', $data);
     $subject = get_string('emailpasswordconfirmationsubject', '', format_string($site->fullname));
 
-    return email_to_user($user, $from, $subject, $message);
+    return email_to_user($user, $supportuser, $subject, $message);
 
 }
 
@@ -3718,20 +3762,20 @@ function send_password_change_info($user) {
     global $CFG;
 
     $site = get_site();
-    $from = get_admin();
+    $supportuser = generate_email_supportuser();
     $systemcontext = get_context_instance(CONTEXT_SYSTEM);
 
     $data = new object();
     $data->firstname = $user->firstname;
     $data->sitename = format_string($site->fullname);
-    $data->admin = fullname($from).' ('. $from->email .')';
+    $data->admin = generate_email_signoff();
 
     $userauth = get_auth_plugin($user->auth);
 
     if (!is_enabled_auth($user->auth) or $user->auth == 'nologin') {
         $message = get_string('emailpasswordchangeinfodisabled', '', $data);
         $subject = get_string('emailpasswordchangeinfosubject', '', format_string($site->fullname));
-        return email_to_user($user, $from, $subject, $message);
+        return email_to_user($user, $supportuser, $subject, $message);
     }
 
     if ($userauth->can_change_password() and $userauth->change_password_url()) {
@@ -3751,7 +3795,7 @@ function send_password_change_info($user) {
         $subject = get_string('emailpasswordchangeinfosubject', '', format_string($site->fullname));
     }
 
-    return email_to_user($user, $from, $subject, $message);
+    return email_to_user($user, $supportuser, $subject, $message);
 
 }