From a6e29ac6a33be909491bd940f225dc8481cf5fed Mon Sep 17 00:00:00 2001 From: "Andrew Davis (andyjdavis)" Date: Thu, 7 Apr 2011 15:39:03 +0800 Subject: [PATCH] message MDL-26185 fixed the logic around email addy in user profile Vs in messaging preferences --- message/output/email/message_output_email.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/message/output/email/message_output_email.php b/message/output/email/message_output_email.php index 0445fbe4aa3..b919eced361 100644 --- a/message/output/email/message_output_email.php +++ b/message/output/email/message_output_email.php @@ -46,11 +46,19 @@ class message_output_email extends message_output { return true; } - //check user preference for where user wants email sent - $eventdata->userto->email = get_user_preferences('message_processor_email_email', $eventdata->userto->email, $eventdata->userto->id); + //the user the email is going to + $recipient = null; - $result = email_to_user($eventdata->userto, $eventdata->userfrom, - $eventdata->subject, $eventdata->fullmessage, $eventdata->fullmessagehtml); + //check if the recipient has a different email address specified in their messaging preferences Vs their user profile + $emailmessagingpreference = get_user_preferences('message_processor_email_email', null, $eventdata->userto); + if (!empty($emailmessagingpreference)) { + //clone to avoid altering the actual user object + $recipient = clone($eventdata->userto); + $recipient->email = $emailmessagingpreference; + } else { + $recipient = $eventdata->userto; + } + $result = email_to_user($recipient, $eventdata->userfrom, $eventdata->subject, $eventdata->fullmessage, $eventdata->fullmessagehtml); return $result; }