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 .
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 */
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