Homepage » come » Invio di notifiche e-mail di lavori automatizzati in SQL Server con SMTP

    Invio di notifiche e-mail di lavori automatizzati in SQL Server con SMTP

    Quando hai processi di backup automatizzati in esecuzione sul tuo server di database, a volte dimentichi che sono persino in esecuzione. Poi ti dimentichi di controllare se stanno funzionando con successo e non ti rendi conto fino a quando il tuo database non va in crash e non puoi ripristinarlo dato che non hai un backup corrente.

    Ecco dove arrivano le notifiche e-mail, così puoi vedere lo stato del lavoro ogni mattina mentre sorseggi il caffè e fai finta di lavorare.

    SQL Server fornisce un metodo integrato per l'invio di e-mail, ma sfortunatamente richiede che Outlook e un profilo siano installati sul server, il che non è necessariamente il modo ideale per inviare una e-mail. Per fortuna c'è un altro metodo, che comporta l'installazione di una stored procedure sul server che ti consentirà di inviare email via SMTP.

    Scarica la stored procedure sp_SQLNotify qui.

    Dovrai modificare una riga nella stored procedure per inserire l'indirizzo IP del tuo server SMTP:

    EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") .Value', '10 .1.1.10 '

    Installa la procedura memorizzata nel database principale, in modo che possa essere facilmente utilizzata da qualsiasi luogo.

    Aprire l'elenco di SQL Server Agent \ Jobs e selezionare le proprietà per il lavoro che si sta tentando di creare una notifica per:

    Fai clic sulla scheda Passaggi e dovresti visualizzare una schermata simile a questa:

    Fare clic sul pulsante Nuovo per creare un nuovo passaggio di lavoro. Utilizzeremo questo passaggio per inviare la notifica via email in caso di successo.

    Nome passaggio: notifica e-mail riuscita

    Inserisci questo SQL nella finestra di comando come mostrato di seguito. Dovrai personalizzare gli indirizzi email e l'oggetto del messaggio in modo che corrisponda al tuo ambiente:

    exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup job Success', 'Il processo di backup è stato completato con successo'

    Fare clic su OK, quindi fare nuovamente clic sul pulsante Nuovo per creare un altro passaggio. Questa sarà la fase di notifica di errore.

    Nome passaggio: errore di notifica via email

    SQL:

    exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Errore del processo di backup', Il processo di backup non è riuscito '

    Ora l'idea è di fare in modo che gli oggetti seguano un flusso di lavoro specifico. Innanzitutto fai clic su Modifica nel passaggio 1 e imposta le proprietà come mostrato qui:

    Quello che stiamo dicendo è che in caso di successo, andare alla fase di successo, e in caso di fallimento, andare alla fase di fallimento. Roba abbastanza semplice.

    Ora modifica il secondo passaggio, quello "La sicurezza delle email ha successo" e imposta le proprietà come visto qui:

    Stiamo dicendo che se il processo di notifica ha esito positivo, basta lasciare il lavoro senza eseguire il passaggio 3. Se non lo specificiamo, finiremo per ricevere due email, una con successo e una con esito negativo.

    Ora modifica il terzo passaggio, l'altro ha etichettato "Errore notifica email" e imposta le proprietà come mostrato qui:

    Ora i tuoi passi di lavoro dovrebbero assomigliare a questo:

    Ora dovresti avere le notifiche e-mail nella tua casella di posta in caso di esito positivo o negativo.

    Nota: la stored procedure utilizzata in questo articolo è stata trovata qui, anche se potrebbe non essere la fonte originale.

    Scarica la stored procedure sp_SQLNotify qui.