diff --git a/src/EmailAlerter.php b/src/EmailAlerter.php new file mode 100644 index 0000000..17cfbd6 --- /dev/null +++ b/src/EmailAlerter.php @@ -0,0 +1,38 @@ +get_email_addresses_of_users_with_role($role)); + $send = true; + $result = $mailManager->mail($module, $key, $to, NULL, $params, NULL, $send); + if ($result['result'] != true) { + $message = t('There was a problem sending your email notification to @email.', array('@email' => $to)); + \Drupal::messenger()->addMessage($message, 'error'); + \Drupal::logger('mail-log')->error($message); + return; + } + $message = t('An email notification has been sent to @email ', array('@email' => $to)); + \Drupal::messenger()->addMessage($message); + \Drupal::logger('mail-log')->notice($message); + } + + private function get_email_addresses_of_users_with_role(string $role): array { + $email_addresses = []; + $ids = \Drupal::entityQuery('user') + ->condition('status', 1) + ->condition('roles', $role) + ->execute(); + $users = User::loadMultiple($ids); + foreach($users as $user){ + $email_addresses[] = $user->getEmail(); + } + return $email_addresses; + } +} + +