Index: units/email_events/email_events_event_handler.php =================================================================== --- units/email_events/email_events_event_handler.php (revision 13652) +++ units/email_events/email_events_event_handler.php (working copy) @@ -356,6 +356,10 @@ $user->Load($to_user_id); } } + elseif (is_numeric($to_user_id)) { + // recipient is system user with negative ID (root, guest, etc.) -> send to admin + array_unshift($all_recipients[RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); + } // update with custom data given during event execution (email + name) $add_recipient = Array (); @@ -376,11 +380,7 @@ if (($object->GetDBField('Type') == EVENT_TYPE_ADMIN) && !$all_recipients[RECIPIENT_TYPE_TO]) { // admin email event without direct recipient -> send to admin - $all_recipients[RECIPIENT_TYPE_TO][] = Array ( - 'RecipientName' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), - 'RecipientAddressType' => ADDRESS_TYPE_EMAIL, - 'RecipientAddress' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), - ); + array_unshift($all_recipients[RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); } $esender =& $this->Application->recallObject('EmailSender'); @@ -468,6 +468,20 @@ } /** + * This is default recipient, when we can't determine actual one + * + * @return Array + */ + function _getDefaultRepipient() + { + return Array ( + 'RecipientName' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), + 'RecipientAddressType' => ADDRESS_TYPE_EMAIL, + 'RecipientAddress' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), + ); + } + + /** * Returns email event message by ID (headers & body in one piece) * * @param kEvent $event