diff --git a/modules/social_features/social_mailer/social_mailer.module b/modules/social_features/social_mailer/social_mailer.module index 0575d7e94e5..1e7e93f415c 100644 --- a/modules/social_features/social_mailer/social_mailer.module +++ b/modules/social_features/social_mailer/social_mailer.module @@ -11,6 +11,7 @@ use Drupal\Core\Link; use Drupal\file\Entity\File; use Drupal\file\FileInterface; use Drupal\social_mailer\Element\SocialMailerTextFormat; +use Drupal\symfony_mailer\AddressInterface; use Drupal\user\UserInterface; use Drupal\symfony_mailer\EmailInterface; use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles; @@ -129,7 +130,7 @@ function social_mailer_preprocess_email(array &$variables): void { } else { $to = $email->getTo(); - $mail = isset($to[0]) ?? FALSE; + $mail = isset($to[0]) ? _addressesToString($to)[0] : FALSE; } if ($mail && ($user = user_load_by_mail($mail)) instanceof UserInterface) { @@ -165,6 +166,21 @@ function social_mailer_element_info_alter(array &$info): void { } } +/** + * Render array of addresses as array of strings. + * + * @param \Drupal\symfony_mailer\AddressInterface[] $addresses + * An array of Address objects. + * + * @return array + * An array of strings. + */ +function _addressesToString(array $addresses): array { + return array_map(function (AddressInterface $address) { + return $address->getEmail(); + }, $addresses); +} + /** * Implements hook_mailer_builder_info_alter(). */