Mailer: send only to verified accounts (option)

This commit is contained in:
slawkens
2025-07-31 09:19:49 +02:00
parent 080cc2781f
commit cf7fd20452
2 changed files with 16 additions and 7 deletions

View File

@@ -28,6 +28,7 @@ if (!setting('core.mail_enabled')) {
$mail_to = isset($_REQUEST['mail_to']) ? stripslashes(trim($_REQUEST['mail_to'])) : null; $mail_to = isset($_REQUEST['mail_to']) ? stripslashes(trim($_REQUEST['mail_to'])) : null;
$mail_subject = isset($_POST['mail_subject']) ? stripslashes($_POST['mail_subject']) : null; $mail_subject = isset($_POST['mail_subject']) ? stripslashes($_POST['mail_subject']) : null;
$mail_content = isset($_POST['mail_content']) ? stripslashes($_POST['mail_content']) : null; $mail_content = isset($_POST['mail_content']) ? stripslashes($_POST['mail_content']) : null;
$mail_verified_only = $_POST['mail_verified_only'] ?? false;
if (isset($_POST['submit'])) { if (isset($_POST['submit'])) {
if (empty($mail_subject)) { if (empty($mail_subject)) {
@@ -58,14 +59,14 @@ if (!empty($mail_content) && !empty($mail_subject) && empty($mail_to)) {
$success = 0; $success = 0;
$failed = 0; $failed = 0;
$add = ''; $query = Account::where('email', '!=', '');
if (setting('core.account_mail_verify')) {
note('Note: Sending only to users with verified E-Mail.'); if ($mail_verified_only) {
$add = ' AND `email_verified` = 1'; info('Note: Sending only to users with verified E-Mail.');
$query->where('email_verified', 1);
} }
$query = Account::where('email', '!=', '')->get(['email']); foreach ($query->get(['email']) as $email) {
foreach ($query as $email) {
if (_mail($email->email, $mail_subject, $mail_content)) { if (_mail($email->email, $mail_subject, $mail_content)) {
$success++; $success++;
} }
@@ -84,5 +85,6 @@ if (!empty($mail_content) && !empty($mail_subject) && empty($mail_to)) {
$twig->display('admin.mailer.html.twig', [ $twig->display('admin.mailer.html.twig', [
'mail_to' => $mail_to, 'mail_to' => $mail_to,
'mail_subject' => $mail_subject, 'mail_subject' => $mail_subject,
'mail_content' => $mail_content 'mail_content' => $mail_content,
'mail_verified_only' => $mail_verified_only,
]); ]);

View File

@@ -16,6 +16,13 @@
<input class="form-control" type="text" id="mail_to" name="mail_to" value="{{ mail_to }}"/> <input class="form-control" type="text" id="mail_to" name="mail_to" value="{{ mail_to }}"/>
</div> </div>
{% if setting('core.account_mail_verify') %}
<div class="form-check">
<input type="checkbox" class="form-check-input" id="mail_verified_only" name="mail_verified_only" {% if mail_verified_only %}checked{% endif %}>
<label class="form-check-label" for="mail_verified_only">Mail only verified users</label>
</div>
{% endif %}
<div class="form-group row"> <div class="form-group row">
<label for="mail_subject">Subject:</label> <label for="mail_subject">Subject:</label>
<input class="form-control" type="text" id="mail_subject" name="mail_subject" value="{{ mail_subject }}" maxlength="30"/> <input class="form-control" type="text" id="mail_subject" name="mail_subject" value="{{ mail_subject }}" maxlength="30"/>