E-Mail aus SQL schicken

Manchmal ist nötig, eine E-Mail aus SQL (z.B. über Trigger) zu schicken. Der E-Mail-Versand in omniSuite läuft asynchron, d.h. die zu sendenden E-Mails müssen in vordefinierten Tabellen gespeichert werden und in bestimmtem Intervallen werden diese Tabellen dann im CMDBCore geprüft und die nicht-erledigten E-Mail werden gesendet.
Um dies alles zu vereinfachen, stehen einige gespeicherten Prozeduren zur Verfügung .

Beispiel 1: Einfache E-Mail (ein Empfänger)

Die gespeicherte Prozedur sp_cmdb_SendOneEmail erledigt 3 Schritte gleichzeitig:
1. erstellt eine E-Mail
2. initiiert alle Werte
3. kennzeichnet die E-Mail als "vorbereitet für Versand"

declare @pNewEmailID int

exec sp_cmdb_SendOneEmail
0, /* wichtig: die EMAIL_ID wird in @pNewEmailID gespeichert. */
@pNewEmailID out,
null, /* wann senden. null => gettime() */
'cmdb@rimacon.de', /* Sender: E-Mail */
'cmdb', /* Sender: Name */
'xx@yyy.de', /* Empfänger: E-Mail */
'xx', /* Empfänger: Name */
'reply@rimacon.de', /* Antwort an */
'Test', /* Betreff */
'Hi,

bla-bla,

MfG' /* Inhalt */

Beispiel 2: Zwei Empfänger

declare @pNewEmailID int

/* Schritt 1/3: E-Mail erstellen und teilweise initiieren */
exec sp_cmdb_CreateEmail
0, /* wichtig: die EMAIL_ID wird in @pNewEmailID gespeichert. */
@pNewEmailID out,
null, /* wann senden. null => gettime() */
'cmdb@rimacon.de', /* Sender: E-Mail */
'cmdb', /* Sender: Name */
'reply@rimacon.de', /* Antwort an */
'Test', /* Betreff */
'Hi,

bla bla bla,

MfG' /* Inhalt */

/* Schritt 2/3: die Empfänger hinzufügen */
exec sp_cmdb_AddRecipientToEmailDirekt @pNewEmailID, 'aaa@firma.de','aaa'
exec sp_cmdb_AddRecipientToEmailDirekt @pNewEmailID, 'bbb@firma.de','bbb'

/* Schritt 3/3: E-Mail als "vorbereitet für Versand" kennzeichnen */
exec sp_cmdb_SendEmail @pNewEmailID