diff --git a/message/output/email/message_output_email.php b/message/output/email/message_output_email.php index 5ebd672bd7c..dff487450e0 100644 --- a/message/output/email/message_output_email.php +++ b/message/output/email/message_output_email.php @@ -46,10 +46,17 @@ class message_output_email extends message_output { return true; } + //hold onto email preference because /admin/cron.php sends a lot of messages at once + static $useremailaddresses = array(); + //check user preference for where user wants email sent - $preferedemail = get_user_preferences('message_processor_email_email', null, $eventdata->userto->id); - if (!empty($preferedemail)) { - $eventdata->userto->email = $preferedemail; + if (!array_key_exists($eventdata->userto->id, $useremailaddresses)) { + $useremailaddresses[$eventdata->userto->id] = get_user_preferences('message_processor_email_email', $eventdata->userto->email, $eventdata->userto->id); + } + $usertoemailaddress = $useremailaddresses[$eventdata->userto->id]; + + if ( !empty($usertoemailaddress)) { + $userto->email = $usertoemailaddress; } $result = email_to_user($eventdata->userto, $eventdata->userfrom,