Tips & Tricks: Zimbra SkillZ – aggiungi un avviso in Zimbra nella posta elettronica esterna

Nel blog di oggi, ti mostrerò come aggiungere, in Zimbra, un messaggio di avviso “e-mail esterno” quando ricevi un’e-mail da un dominio esterno.

Questo viene fatto utilizzando un filtro Sieve e può essere abilitato per account, COS, dominio e server.

Innanzitutto, crea/tmp/myfilters

su - zimbra
nano /tmp/myfilters

Con questi contenuti:

require ["fileinto", "reject", "tag", "flag", "editheader", "variables"];
# add an external domain header to all email not coming from our own domains
if allof(
not address :domain :is ["from"] ["example.com"],
not header :contains "Subject" ["[External Email]"]
)
{
addheader "X-External-Domain" "This Message originated outside of mind.";
# Match the entire subject ...
if header :matches "Subject" "*" {
# ... to get it in a match group that can then be stored in a variable:
set "subject" "${1}";
}
# We can't "replace" a header, but we can delete (all instances of) it and
# re-add (a single instance of) it:
deleteheader "Subject";
# Append/prepend as you see fit
addheader :last "Subject" "[External Email] ${subject}";
# Note that the header is added ":last" (so it won't appear before possible
# "Received" headers).
}

Sostituisci  example.com con il tuo nome di dominio Zimbra. Puoi anche aggiungere ulteriori domini attendibili in cui non desideri che venga visualizzato l’avviso di posta elettronica esterno utilizzando:

not address :domain :is ["from"] ["example.com","supermodel.com","gamer.tech"],

Abilitalo su un account di prova utilizzando

zmprov mc default zimbraSieveEditHeaderEnabled TRUE
cat /tmp/myfilters |xargs -0 zmprov ma test@example.com zimbraAdminSieveScriptBefore

Di seguito sono riportati alcuni screenshot di esempio durante la ricezione di e-mail da domini esterni:

Come gestire le email inoltrate definite dall’utente

Un utente può configurare Zimbra per inoltrare la propria e-mail a un altro utente. Per poter creare una regola del filtro Sieve in grado di distinguere tra un’e-mail inoltrata configurata dall’utente ed una inviata manualmente dall’utente è possibile abilitare l’intestazione X-Authenticated-User :

sudo su zimbra
zmprov mcf zimbraSmtpSendAddAuthenticatedUser TRUE
zmprov mcf zimbraMtaSmtpdSaslAuthenticatedHeader yes
zmcontrol restart

In futuro, l’e-mail inviata manualmente dall’utente avrà l’intestazione X-Authenticated-User e l’e-mail inoltrata NON avrà l’intestazione. È possibile scrivere un filtro Sieve come segue:

if allof(
address :is :domain ["from", "sender"] ["example.com","supermodel.com","gamer.tech"],
not exists ["X-Authenticated-User"]
)
{
# do something here
stop;
}
Suggerimenti
  1. La modifica del messaggio in questo modo interromperà DKIM. Gli utenti possono riconvalidare DKIM manualmente dopo che è stato verificato e l’oggetto è stato modificato.
  2. Questa non è una protezione contro lo spoofing. Devi rifiutare le email con un dominio FROM che proviene da posizioni non attendibili.
  3. In un ambiente multi-tenant, sarebbe meglio configurarlo sul dominio. Anche se i domini si trovano nello stesso ambiente, potrebbero essere esterni l’uno all’altro.