Aktivieren des Datenbankmail Moduls

Im ersten Schritt muss das Datenbank Mail Modul des SQL Servers aktiviert werden.
Hierzu ruft man im SQL Server Management Studio den Menüpunkt "Facets" im Kontextmenü beim Rechtsklick auf den Server auf.
Im Facet "Surface Area Configuration" wird dann der Wert von "DatabaseMailEnabled" von False auf True geändert.
Nach Schliessen des Fensters mit "OK" ist diese Änderung auch sofort wirksam.
Der nächste Schritt ist nun die Konfiguration des Moduls.

Konfigurieren des Datenbankmail Moduls

Für die Konfiguration steht in der Microsoft SQL Server Express Edition kein grafisches Frontend zur Verfügung.
Die Parametrisierung erfolgt direkt in den jeweiligen Systemtabellen des SQL- Servers. Diese Tabellen finden sich in der Datenbank msdb.
Die grundlegenden Tabellen für die Konfiguration sind:
sysmail_account
sysmail_profile
sysmail_profileaccount
sysmail_server Folgenden kleine SQL- Schnipsel müssen vor dem Ausführen selbstverständlich noch von den Werten her angepasst werden. Sie stellen lediglich die notwendigsten Einstellungen für den Versand über einen SMTP- Server, der Mails vom SQL- Server ohne Authentifizierung entgegen nimmt, dar.

Anlegen eines Mail- Accounts

INSERT INTO [msdb].[dbo].[sysmail_account]
           ( [name]
           ,[description]
           ,[email_address]
           ,[display_name]
           ,[replyto_address] )
  VALUES
     ( 'SQLMAIL',
   'Description for this account',
   'eMail-address@bayreuth.tk',
   'Display Name',
   'replyto@bayreuth.tk' )
GO

Anlegen eines Profils

INSERT INTO [msdb].[dbo].[sysmail_profile]
           ( [name]
           ,[description] )
  VALUES
      ( 'PROFILENAME',
      'Description for this profile' )
GO
Nun muss noch der Account mit dem Profil verknüpft werden.
Hierzu sucht man sich aus den Tabellen sysmail_profile den Wert der Spalte profile_id und aus der Tabelle sysmail_account den Wert der Spalte account_id. Wenn der oben eingerichtete Account und das Profil das erste und einzige auf dem Server sind, sollten beide Werte 1 sein.

Verknüpfen von Account und Profil

INSERT INTO [msdb].[dbo].[sysmail_profileaccount]
           ( [profile_id]
           ,[account_id] )
  VALUES
      ( PROFILEID,
      ACCOUNTID )
GO

Konfigurieren des eMail Servers

INSERT INTO [msdb].[dbo].[sysmail_server]
           ( [account_id]
           ,[servertype]
           ,[servername]
           ,[port]
           ,[use_default_credentials]
           ,[enable_ssl]
           ,[flags] )
  VALUES
      ( 1,
      'SMTP',
      'mx.bayreuth.tk',
      25,
      0,
      0,
      0 )
GO
Nach Abschluss der obigen Schritte und eines Refresh der Datenbank msdb ist die Stored Procedure sp_send_dbmail nun einsatzbereit.
Der Versand des Ergebnisses aus einer Query per Mail kann nun z.B. so realisiert werden:
exec msdb.dbo.sp_send_dbmail
  @profile_name = 'KETOSQL',
  @recipients = 'sqladmin@bayreuth.tk',
  @query = 'QUERY GOES HERE',
  @subject = 'This is the subject',
  @body = 'Here is the body of the mail',
  @attach_query_result_as_file = 1;