Heim >Datenbank >MySQL-Tutorial >Wie kann ich den E-Mail-Versand von SQL Server mithilfe von T-SQL automatisieren?

Wie kann ich den E-Mail-Versand von SQL Server mithilfe von T-SQL automatisieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 11:59:13346Durchsuche

How Can I Automate Email Sending from SQL Server Using T-SQL?

Automatisches E-Mail-Versenden von SQL Server

Diese Frage sucht nach einer Lösung für das Versenden von E-Mails von SQL Server mit Transact-SQL (T-SQL) , insbesondere wenn die E-Mail-Adressen der Empfänger in einer Datenbanktabelle gespeichert sind. Das Ziel besteht darin, den E-Mail-Versandprozess zu automatisieren, indem die Tabelle durchlaufen und E-Mails an jede Adresse gesendet wird.

Lösungsschritte:

1. Konfiguration:

  • Erstellen Sie ein Profil und ein Konto mit dem Assistenten zum Konfigurieren von Datenbank-Mails. Mit diesem Assistenten können Sie Konten, Profile und globale Einstellungen für Datenbank-Mail verwalten.
  • Richten Sie SQL Server-Berechtigungen ein, indem Sie die folgenden Befehle ausführen:

    sp_CONFIGURE 'show advanced', 1
    GO
    RECONFIGURE
    GO
    sp_CONFIGURE 'Database Mail XPs', 1
    GO
    RECONFIGURE
    GO

2. E-Mails senden:

  • Um E-Mails programmgesteuert zu senden, verwenden Sie die gespeicherte Prozedur sp_send_dbmail:

    sp_send_dbmail @profile_name='yourprofilename',
    @recipients='[email protected]',
    @subject='Test message',
    @body='This is the body of the test message.
    Congrates Database Mail Received By you Successfully.'

3. Schleife durch eine Tabelle:

  • Um E-Mails an mehrere in einer Tabelle gespeicherte Empfänger zu senden, verwenden Sie eine Schleife:

    DECLARE @email_id NVARCHAR(450), @id BIGINT, @max_id BIGINT, @query NVARCHAR(1000)
    
    SELECT @id=MIN(id), @max_id=MAX(id) FROM [email_adresses]
    
    WHILE @id<=@max_id
    BEGIN
      SELECT @email_id=email_id 
      FROM [email_adresses]
    
      set @query='sp_send_dbmail @profile_name=''yourprofilename'',
                          @recipients='''+@email_id+''',
                          @subject=''Test message'',
                          @body=''This is the body of the test message.
                          Congrates Database Mail Received By you Successfully.'''
    
      EXEC @query
      SELECT @id=MIN(id) FROM [email_adresses] where id>@id
    
    END

Das obige ist der detaillierte Inhalt vonWie kann ich den E-Mail-Versand von SQL Server mithilfe von T-SQL automatisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn