Notifiche in e-mail quando un profilo di archiviazione fallisce

[tratto dall’articolo https://blog.zensoftware.co.uk/2015/06/18/how-to-recieve-email-alerts-from-mailstore-if-archive-jobs-fail/]

Ci è stato spesso chiesto come fare per ricevere una notifica via email che segnali se un profilo di archiviazione ha avuto dei problemi di esecuzione.

Al momento non è possibile far inviare direttamente una email di notifica da MailStore Server, ma vedremo di seguito che con un po’ di pazienza è comunque possibile creare questa funzionalità.

Per fare questo è necessario che MailStore Server sia in esecuzione su Windows 7, 8, 2008 o 2012.

MailStore deve essere configurato per salvare gli eventi nel registro eventi di Windows e non nel file system (condizione di default).

L’indirizzo e-mail al quale inviare non deve contenere il carattere “$” (è piuttosto improbabile, ma non si sa mai).

Il metodo si basa sugli eventi scritti nel registro di Windows dal sistema di audit di MailStore. Per tale motivo va prima abilitato il sistema di audit.

Aprire MailStore Client come admin.

Cliccare su Strumenti di amministrazione, Conformità generale, Revisione.

Selezionare l’attività utente “ProfileRunArc” e attivarla.

E’ molto importante verificare che gli eventi siano scritti nel registro di Windows. Per tale ragione, eseguire un profilo di archiviazione. Al termine aprire gli eventi di Windows, Applicazioni, cercare gli eventi con origine “MailStore Server Auditing”. Se non si sono verificati degli errori durante l’archiviazione il livello è “Informazioni” oppure “Errore” (nella schermata sono presenti i due casi).

Configuriamo ora l’Utilità di pianificazione di Windows per monitorare l’evento ed inviare un’email. Apriamo l’utilità di pianificazione, creiamo una nuova cartella nella libreria, ad esempio “MailStore Auditing”

Creiamo una nuova attività (non un’attività di base).

Diamo un nome all’attività, ad esempio “Errori di archiviazione MailStore”.

Selezioniamo “Esegui indipendentemente dalla connessione degli utenti” e Configura per “Windows Vista or Windows Server 2008”.

Clicchiamo sulla linguetta Attivazione, quindi Nuovo, avvia l’attività “Al verificarsi di un evento”.

Nel riquadro Impostazioni selezioniamo “Person.”, quindi Nuovo filtro eventi.

Selezioniamo “Errore” come Livello evento.

Selezioniamo “MailStore Server Auditing” come Origine eventi e confermiamo con OK e ancora con OK.

Clicchiamo sulla linguetta Azioni.

Prima di procedere dobbiamo creare uno script Powershell. Apriamo il nostro editor di testi preferito (Notepad va benissimo), copiamo lo script seguente personalizzando le parti in rosso.

$EmailFrom = “mailstore@tuodominio.it”
$EmailTo = “amministratore@tuodominio.it”
$Subject = “Errore MailStore”
$Body = “Per favore controlla i log di MailStore Server”
$SMTPServer = “smtp.tuodominio.it”
$SMTPPort = 25
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$SMTPClient.EnableSsl = $false
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“username”, “password”);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Dopo aver personalizzato lo script salvatelo in c:\email-alert.ps1 (ovviamente il percorso può essere diverso). Torniamo alla pianificazione attività di Windows, nel campo Operazione selezioniamo “Avvia programma”

Digitiamo

c:\email-alert.ps1

nel campo “Aggiungi argomenti” e salviamo con OK.

Dobbiamo ora abilitare l’esecuzione dello script. Apriamo quindi Windows PowerShell (da Esegui digitiamo powershell) e digitiamo

Set-ExecutionPolicy RemoteSigned

e confermiamo con S .

Se come server di posta utilizziamo Kerio Connect, suggeriamo di abilitare il messaggio SMTP Server nel log di debug (webadmin, log, debug, clic con il tasto destro nella finestra di destra, messaggi, segno di spunta su SMTP Server).

Eseguire manualmente un profilo di archiviazione di MailStore che, se interrotto durante l’esecuzione cliccando “annulla”, dovrebbe generare un evento di Errore nel registro eventi di Windows e far inviare un messaggio di alert.

Effettuiamo un test dello script di generazione del messaggio di posta elettronica eseguendolo manualmente con

powershell.exe c:\email-alert.ps1

Se tutto è ok lo script sarà eseguito e riceveremo un messaggio email di avviso.

Segnaliamo che è uscito un nuovo interessante seguito al presente articolo, che non abbiamo ancora tradotto, al seguente indirizzo https://blog.zensoftware.co.uk/2016/07/05/get-better-mailstore-email-alerts-using-powershell/

Suggeriamo, infine, un ulteriore modifica dello script per inviare un avviso anche sull’ormai conosciutissimo sistema di messaggistica istantanea “Slack“.

Inserendo alla fine del precedente script Powershell le seguenti righe di codice, sarà possibile ricevere un avviso anche su uno specifico canale di Slack. In questo caso il canale utilizzato lo abbiamo chiamato #mailstore.

$Token=”<sotituire il presente testo in rosso con il vostro Slack-token>
$postSlackMessage = @{token=$Token;channel=”#mailstore”;text=$Subject;username=”MailStore Server”}
Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage

Comments are closed.