1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-23 06:47:40 +01:00

Invio test newsletter

This commit is contained in:
MatteoPistorello 2023-09-08 17:30:27 +02:00
parent da48d1f16b
commit 57998164a4
3 changed files with 38 additions and 19 deletions

View File

@ -74,12 +74,15 @@ switch (filter('op')) {
$count = $destinatari->count();
for ($i = 0; $i < $count; ++$i) {
$destinatario = $destinatari->skip($i)->first();
$mail = $newsletter->inviaDestinatario($destinatario);
// Aggiornamento riferimento per la newsletter
if (!empty($mail)) {
$destinatario->id_email = $mail->id;
$destinatario->save();
if (empty($destinatario->id_email)) {
$mail = $newsletter->inviaDestinatario($destinatario);
// Aggiornamento riferimento per la newsletter
if (!empty($mail)) {
$destinatario->id_email = $mail->id;
$destinatario->save();
}
}
}
@ -91,9 +94,10 @@ switch (filter('op')) {
break;
case 'test':
case 'send-line':
$receiver_id = post('id');
$receiver_type = post('type');
$test = post('test');
// Individuazione destinatario interessato
$newsletter = Newsletter::find($id_record);
@ -105,15 +109,26 @@ switch (filter('op')) {
// Generazione email e tentativo di invio
$inviata = false;
if (!empty($destinatario)) {
$mail = $newsletter->inviaDestinatario($destinatario, true);
if ($test) {
$mail = $newsletter->inviaDestinatario($destinatario, true);
try {
$email = EmailNotification::build($mail, true);
$email->send();
try {
$email = EmailNotification::build($mail, true);
$email->send();
$inviata = true;
} catch (Exception $e) {
// $mail->delete();
$inviata = true;
} catch (Exception $e) {
// $mail->delete();
}
} else {
$mail = $newsletter->inviaDestinatario($destinatario);
// Aggiornamento riferimento per la newsletter
if (!empty($mail)) {
$destinatario->id_email = $mail->id;
$destinatario->save();
$inviata = true;
}
}
}

View File

@ -4,6 +4,7 @@ use Models\Module;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Referente;
use Modules\Anagrafiche\Sede;
use Modules\Emails\Mail;
use Modules\ListeNewsletter\Lista;
use Modules\Newsletter\Newsletter;
@ -94,11 +95,12 @@ foreach ($destinatari_filtrati as $destinatario) {
// Informazioni di invio
if (empty($lista)) {
$mail = $dbo->fetchOne('SELECT * FROM em_emails WHERE id_newsletter='.prepare($id_newsletter).' AND id_record='.prepare($origine->idanagrafica));
if (!empty($mail['sent_at'])) {
$mail_id = $destinatario->id_email;
$mail = Mail::find($mail_id);
if (!empty($mail) && !empty($mail->sent_at)) {
$info_invio = '
<span class="text-success">
<i class="fa fa-paper-plane"></i> '.timestampFormat($mail['sent_at']).'
<i class="fa fa-paper-plane"></i> '.timestampFormat($mail->sent_at).'
</span>';
} else {
$info_invio = '

View File

@ -254,8 +254,9 @@ function testInvio(button) {
const email = $(button).data("email");
swal({
title: "'.tr('Invio di test?').'",
html: `'.tr("Vuoi effettuare un invio di test all'indirizzo _EMAIL_?", ['_EMAIL_' => '${email}']).' '.tr("L'email non sarà registrata come inviata, e l'invio della newsletter non escluderà questo indirizzo").'.`,
title: "'.tr('Inviare la newsletter?').'",
html: `'.tr("Vuoi effettuare un invio all'indirizzo _EMAIL_?", ['_EMAIL_' => '${email}']).' '.tr("L'email non sarà registrata come inviata, e l'invio della newsletter non escluderà questo indirizzo se impostato come invio di test").'.<br><br>
{[ "type": "checkbox", "label": "'.tr('Invio di test').'", "name": "test" ]}`,
type: "warning",
showCancelButton: true,
confirmButtonText: "'.tr('Invia').'",
@ -269,9 +270,10 @@ function testInvio(button) {
data: {
id_module: globals.id_module,
id_record: globals.id_record,
op: "test",
op: "send-line",
id: destinatario_id,
type: destinatario_type,
test: input("test").get(),
},
success: function (response) {
buttonRestore(button, restore);