Overview
Mailing
Invio email dal backend WUIC: liste di distribuzione schedulate, email event-driven dei workflow ed email di sistema (registrazione utenti). Tutti i canali usano lo stesso SMTP configurato in AppSettings.
Configurazione SMTP (appsettings.json → AppSettings)
| Chiave | Significato |
|---|---|
email-host / email-port / email-ssl | server SMTP, porta (25, 465, 587) e TLS |
email-user / email-pwd | credenziali; con email-user vuoto viene usata l'identita' del processo |
email-sender-address-mailing / email-sender-name-mailing | mittente e display name delle liste di distribuzione e delle email workflow |
email-sender-address-registration / email-admin-registration | mittente delle email di registrazione e destinatario delle notifiche admin |
content-url | URL base per i link di conferma nelle email |
Le chiavi sono hot-reload. Multi-tenant: ogni chiave accetta un override per azienda nel formato <chiave>__a<aziendaId> (es. email-host__a1), con fallback al valore globale. Il template dei pacchetti usa il placeholder __SET_SMTP_PASSWORD__: finche' resta, l'SMTP e' considerato non configurato e le email workflow restano in stato logged.
Liste di distribuzione (scheduler)
Le liste vivono nel DB metadata:
_mailing_lists:list_name,enabled,single_run,subject_template,body_template,is_body_html,send_mode,notes,metadata_json_mail_recipients:mailing_list_id,email,display_name,enabled,sort_order
send_mode accetta single_per_recipient (un messaggio per destinatario, default), single_to_all (un messaggio con tutti i destinatari in To) e single_to_bcc (un messaggio con tutti in Bcc).
L'invio e' un task dello scheduler con action_type = 4 e action_cmd = <id della lista>. In params_values del task si possono sovrascrivere subject, body, isHtml, from, fromName (coppie chiave=valore). Con single_run = 1 la lista viene disabilitata dopo il primo invio riuscito. Tabelle, route e voci nel menu Amministrazione arrivano con scripts/scaffold-scheduler-mailing-metadata.sql (le sole tabelle con scripts/add-mailing-tables.sql). Frequenza, retry e log di esecuzione: vedi Scheduling.
Email dai workflow (outbox)
L'azione interna di tipo 101 (Email) del workflow designer chiama MetaService.enqueueWorkflowEmail: la mail viene inserita in _wuic_mail_outbox (mail_to, subject, body, related_route, related_pk, status, error, sent_at) e, se l'SMTP e' configurato, inviata subito con status = sent; altrimenti resta logged (utile in demo e in ambienti senza SMTP). Un errore di invio produce status = error con il messaggio in error. Piu' destinatari si separano con ; o ,.
Email di sistema
Registrazione utenti, attivazione e notifica all'amministratore usano email-sender-address-registration e email-admin-registration. Vedi Autenticazione & Autorizzazioni.
Troubleshooting
SMTP host is required/From address is required:email-hostoemail-sender-address-mailingvuoti.No recipients configured for mailing list: nessun destinatario conenabled = 1.Mailing list N not found, disabled or deleted:action_cmderrato oppure lista disabilitata (anche dasingle_run).- Email workflow sempre
logged: password ancora__SET_SMTP_PASSWORD__o host vuoto.