[ticket/17493] Explicitly use email in acp/ucp modules

PHPBB-17493
This commit is contained in:
Marc Alexander 2025-04-21 15:42:59 +02:00
parent 3125f3e1d3
commit 75a24ae484
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
4 changed files with 65 additions and 86 deletions

View file

@ -213,43 +213,38 @@ class acp_email
); );
extract($phpbb_dispatcher->trigger_event('core.acp_email_send_before', compact($vars))); extract($phpbb_dispatcher->trigger_event('core.acp_email_send_before', compact($vars)));
/** @var \phpbb\di\service_collection */ /** @var \phpbb\di\service_collection $messenger_collection */
$messenger = $phpbb_container->get('messenger.method_collection'); $messenger_collection = $phpbb_container->get('messenger.method_collection');
$messenger_collection_iterator = $messenger->getIterator(); /** @var \phpbb\messenger\method\messenger_interface $messenger_method */
$messenger_method = $messenger_collection->offsetGet('messenger.method.email');
for ($i = 0, $size = count($email_list); $i < $size; $i++) for ($i = 0, $size = count($email_list); $i < $size; $i++)
{ {
$used_lang = $email_list[$i][0]['lang']; $used_lang = $email_list[$i][0]['lang'];
/** $messenger_method->set_use_queue($use_queue);
* @var \phpbb\messenger\method\messenger_interface $messenger_method $messenger_method->template($email_template, $used_lang);
* @psalm-suppress UndefinedMethod $messenger_method->subject(html_entity_decode($subject, ENT_COMPAT));
*/ $messenger_method->assign_vars($template_data);
foreach ($messenger_collection_iterator as $messenger_method)
for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++)
{ {
$messenger_method->set_use_queue($use_queue); $email_row = $email_list[$i][$j];
$messenger_method->template($email_template, $used_lang); if (count($email_list[$i]) == 1)
$messenger_method->subject(html_entity_decode($subject, ENT_COMPAT));
$messenger_method->assign_vars($template_data);
for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++)
{ {
$email_row = $email_list[$i][$j]; $messenger_method->to($email_row['email'], $email_row['name']);
if (count($email_list[$i]) == 1) }
{ else
$messenger_method->to($email_row['email'], $email_row['name']); {
} $messenger_method->bcc($email_row['email'], $email_row['name']);
else
{
$messenger_method->bcc($email_row['email'], $email_row['name']);
}
} }
$messenger_method->anti_abuse_headers($config, $user);
$messenger_method->set_mail_priority($priority);
$errored = !$messenger_method->send() || $errored;
$messenger_method->save_queue();
} }
$messenger_method->anti_abuse_headers($config, $user);
$messenger_method->set_mail_priority($priority);
$errored = !$messenger_method->send() || $errored;
$messenger_method->save_queue();
} }
unset($email_list); unset($email_list);

View file

@ -194,9 +194,10 @@ class acp_inactive
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
/** @var \phpbb\di\service_collection */ /** @var \phpbb\di\service_collection $messenger_collection */
$messenger = $phpbb_container->get('messenger.method_collection'); $messenger_collection = $phpbb_container->get('messenger.method_collection');
$messenger_collection_iterator = $messenger->getIterator(); /** @var \phpbb\messenger\method\messenger_interface $messenger_method */
$messenger_method = $messenger_collection->offsetGet('messenger.method.email');
if ($row = $db->sql_fetchrow($result)) if ($row = $db->sql_fetchrow($result))
{ {
@ -205,24 +206,17 @@ class acp_inactive
do do
{ {
/** $messenger_method->template('user_remind_inactive', $row['user_lang']);
* @var \phpbb\messenger\method\messenger_interface $messenger_method $messenger_method->set_addresses($row);
* @psalm-suppress UndefinedMethod $messenger_method->anti_abuse_headers($config, $user);
*/ $messenger_method->assign_vars([
foreach ($messenger_collection_iterator as $messenger_method) 'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT),
{ 'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true),
$messenger_method->template('user_remind_inactive', $row['user_lang']); 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'],
$messenger_method->set_addresses($row); ]);
$messenger_method->anti_abuse_headers($config, $user);
$messenger_method->assign_vars([
'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT),
'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true),
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'],
]);
$messenger_method->send(); $messenger_method->send();
$messenger_method->save_queue(); $messenger_method->save_queue();
}
$usernames[] = $row['username']; $usernames[] = $row['username'];
$user_ids[] = (int) $row['user_id']; $user_ids[] = (int) $row['user_id'];

View file

@ -131,25 +131,20 @@ class ucp_activate
$phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications = $phpbb_container->get('notification_manager');
$phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']); $phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']);
$messenger = $phpbb_container->get('messenger.method_collection'); /** @var \phpbb\di\service_collection $messenger_collection */
$messenger_collection_iterator = $messenger->getIterator(); $messenger_collection = $phpbb_container->get('messenger.method_collection');
/** @var \phpbb\messenger\method\messenger_interface $messenger_method */
$messenger_method = $messenger_collection->offsetGet('messenger.method.email');
/** $messenger_method->set_use_queue(false);
* @var \phpbb\messenger\method\messenger_interface $messenger_method $messenger_method->template('admin_welcome_activated', $user_row['user_lang']);
* @psalm-suppress UndefinedMethod $messenger_method->set_addresses($user_row);
*/ $messenger_method->anti_abuse_headers($config, $user);
foreach ($messenger_collection_iterator as $messenger_method) $messenger_method->assign_vars([
{ 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
$messenger_method->set_use_queue(false); ]);
$messenger_method->template('admin_welcome_activated', $user_row['user_lang']);
$messenger_method->set_addresses($user_row);
$messenger_method->anti_abuse_headers($config, $user);
$messenger_method->assign_vars([
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
]);
$messenger_method->send(); $messenger_method->send();
}
$message = 'ACCOUNT_ACTIVE_ADMIN'; $message = 'ACCOUNT_ACTIVE_ADMIN';
} }

View file

@ -133,29 +133,24 @@ class ucp_resend
WHERE ' . $db->sql_in_set('user_id', $admin_ary[0]['a_user']); WHERE ' . $db->sql_in_set('user_id', $admin_ary[0]['a_user']);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
/** @var \phpbb\di\service_collection */ /** @var \phpbb\di\service_collection $messenger_collection */
$messenger = $phpbb_container->get('messenger.method_collection'); $messenger_collection = $phpbb_container->get('messenger.method_collection');
$messenger_collection_iterator = $messenger->getIterator(); /** @var \phpbb\messenger\method\messenger_interface $messenger_method */
$messenger_method = $messenger_collection->offsetGet('messenger.method.email');
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
{ {
/** $messenger_method->set_use_queue(false);
* @var \phpbb\messenger\method\messenger_interface $messenger_method $messenger_method->template('admin_activate', $row['user_lang']);
* @psalm-suppress UndefinedMethod $messenger_method->set_addresses($row);
*/ $messenger_method->anti_abuse_headers($config, $user);
foreach ($messenger_collection_iterator as $messenger_method) $messenger_method->assign_vars([
{ 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
$messenger_method->set_use_queue(false); 'U_USER_DETAILS' => $board_url . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}",
$messenger_method->template('admin_activate', $row['user_lang']); 'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}",
$messenger_method->set_addresses($row); ]);
$messenger_method->anti_abuse_headers($config, $user);
$messenger_method->assign_vars([
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
'U_USER_DETAILS' => $board_url . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}",
'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}",
]);
$messenger_method->send(); $messenger_method->send();
}
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
} }