Share via


Database e-mail

Van toepassing op:SQL ServerAzure SQL Managed Instance

Database Mail is een bedrijfsoplossing voor het verzenden van e-mailberichten vanuit de SQL Server Database Engine of Azure SQL Managed Instance. Uw toepassingen kunnen e-mailberichten verzenden naar gebruikers met database-e-mail via een externe SMTP-server. De berichten kunnen queryresultaten bevatten en kunnen ook bestanden uit elke resource in uw netwerk bevatten.

Opmerking

Database Mail is beschikbaar in SQL Server Database Engine en Azure SQL Managed Instance, maar niet in Azure SQL Database en elastische pools. Zie Beheertaken automatiseren met behulp van SQL Agent-taken in Azure SQL Managed Instance voor meer informatie over het gebruik van Database Mail in Azure SQL Managed Instance.

Voordelen van het gebruik van Database Mail

Database Mail is ontworpen voor betrouwbaarheid, schaalbaarheid, beveiliging en ondersteuning.

Betrouwbaarheid

  • Database Mail maakt gebruik van het standaard SMTP (Simple Mail Transfer Protocol) voor het verzenden van e-mail. U kunt Database Mail gebruiken zonder een uitgebreide MAPI-client te installeren op de computer waarop SQL Server wordt uitgevoerd.

  • Procesisolatie. Om de impact op SQL Server te minimaliseren, wordt het onderdeel dat e-mail levert buiten SQL Server uitgevoerd in een afzonderlijk proces. SQL Server blijft e-mailberichten in de wachtrij plaatsen, zelfs als het externe proces stopt of mislukt. De berichten in de wachtrij worden verzonden zodra het externe proces of de SMTP-server online is.

  • Failoveraccounts. Met een Database Mail-profiel kunt u meer dan één SMTP-server opgeven. Als een SMTP-server niet beschikbaar is, kan e-mail nog steeds worden bezorgd bij een andere SMTP-server.

  • Clusterondersteuning. Database Mail is clusterbewust en wordt volledig ondersteund op een cluster.

Schaalbaarheid

  • Achtergrondbezorging: Database Mail biedt achtergrond of asynchrone levering. Wanneer u belt sp_send_dbmail om een bericht te verzenden, voegt Database Mail een aanvraag toe aan een Service Broker-wachtrij. De opgeslagen procedure retourneert onmiddellijk. Het externe e-mailonderdeel ontvangt de aanvraag en levert het e-mailbericht.

  • Meerdere profielen: Met Database Mail kunt u meerdere profielen maken binnen een SQL Server-exemplaar. U kunt desgewenst het profiel kiezen dat Database Mail gebruikt wanneer u een bericht verzendt.

  • Meerdere accounts: elk profiel kan meerdere failoveraccounts bevatten. U kunt verschillende profielen met verschillende accounts configureren om e-mail over meerdere e-mailservers te distribueren.

  • 64-bits compatibiliteit: Database Mail wordt volledig ondersteund op 64-bits installaties van SQL Server.

Veiligheid

  • Standaard uitgeschakeld: Als u het oppervlak van SQL Server wilt verminderen, worden opgeslagen procedures voor Database Mail standaard uitgeschakeld.

  • Mailbeveiliging:Als u Database Mail wilt verzenden, moet u lid zijn van de databaserol DatabaseMailUserRole in de msdb database.

  • Profielbeveiliging: Database Mail dwingt beveiliging af voor e-mailprofielen. U kiest de msdb databasegebruikers of -groepen die toegang hebben tot een Database Mail-profiel. U kunt toegang verlenen aan specifieke gebruikers of aan alle gebruikers in msdb. Een privéprofiel beperkt de toegang tot een opgegeven lijst met gebruikers. Een openbaar profiel is beschikbaar voor alle gebruikers in een database.

  • Gouverneur van bijlagegrootte: Database Mail dwingt een configureerbare limiet af voor de grootte van het bijlagebestand. U kunt deze limiet wijzigen met behulp van de sysmail_configure_sp opgeslagen procedure.

  • Verboden bestandsextensies: Database Mail onderhoudt een lijst met verboden bestandsextensies. Gebruikers kunnen geen bestanden bijvoegen met een extensie die wordt weergegeven in de lijst. U kunt deze lijst wijzigen met behulp van sysmail_configure_sp.

  • Database Mail wordt uitgevoerd onder het SQL Server Engine-serviceaccount. Als u een bestand uit een map aan een e-mailbericht wilt toevoegen, moet het SQL Server Engine-account machtigingen hebben voor toegang tot de map met het bestand.

Ondersteuning

  • Geïntegreerde configuratie: Database Mail onderhoudt de informatie voor e-mailaccounts in SQL Server Database Engine. U hoeft geen e-mailprofiel te beheren in een externe clienttoepassing. De wizard Database Mail configureren biedt een handige interface voor het configureren van Database Mail. U kunt ook Database Mail-configuraties maken en onderhouden met Behulp van Transact-SQL.

  • Loggen. Database Mail registreert e-mailactiviteit naar SQL Server, het gebeurtenislogboek van de Microsoft Windows-toepassing en naar tabellen in de msdb database.

  • Controle: Database Mail bewaart kopieën van berichten en bijlagen die in de msdb database worden verzonden. U kunt eenvoudig het gebruik van Database Mail controleren en de bewaarde berichten controleren.

  • Ondersteuning voor HTML: Met Database Mail kunt u e-mail verzenden die is opgemaakt als HTML.

Database Mail-architectuur

Database Mail is gebaseerd op een wachtrijarchitectuur die gebruikmaakt van service-brokertechnologieën. Wanneer gebruikers sp_send_dbmail uitvoeren, voegt de opgeslagen procedure een item toe aan de e-mailwachtrij en maakt een record aan dat het e-mailbericht bevat. Als u de nieuwe vermelding in de e-mailwachtrij invoegt, wordt het externe database-e-mailproces (DatabaseMail.exe) gestart. Het externe proces leest de e-mailgegevens en verzendt het e-mailbericht naar de juiste e-mailserver of -servers. Het externe proces voegt een item toe aan de Statuswachtrij voor het resultaat van de verzendbewerking. Als u de nieuwe vermelding in de statuswachtrij invoegt, wordt een interne opgeslagen procedure gestart waarmee de status van het e-mailbericht wordt bijgewerkt. Naast het opslaan van het verzonden of niet-verzonden e-mailbericht, registreert Database Mail ook alle e-mailbijlagen in de systeemtabellen. Database Mail-weergaven bieden de status van berichten voor probleemoplossing en opgeslagen procedures maken het beheer van de Database Mail-wachtrij mogelijk.

Diagram van hoe de msdb-systeemdatabase berichten verzendt naar een SMTP-e-mailserver.

Inleiding tot Database Mail-onderdelen

Database Mail bestaat uit de volgende hoofdonderdelen:

  • Configuratie- en beveiligingsonderdelen

    Database Mail slaat configuratie- en beveiligingsgegevens op in de msdb database. Configuratie- en beveiligingsobjecten maken profielen en accounts die worden gebruikt door Database Mail.

  • Berichtcomponenten

    De msdb database fungeert als de e-mailhostdatabase die de berichtenobjecten bevat die Database Mail gebruikt om e-mail te verzenden. Deze objecten omvatten de sp_send_dbmail opgeslagen procedure en de gegevensstructuren die informatie over berichten bevatten.

  • Uitvoerbaar database-e-mailbestand

    Het uitvoerbare bestand Database Mail is een extern programma dat wordt gelezen uit een wachtrij in de msdb database en berichten verzendt naar e-mailservers.

  • Onderdelen voor logboekregistratie en controle

    Database Mail registreert logboekgegevens in de msdb database en het gebeurtenislogboek van de Microsoft Windows-toepassing.

SQL Agent configureren voor het gebruik van Database Mail

SQL Server Agent kan worden geconfigureerd voor het gebruik van Database Mail. Dit is vereist voor waarschuwingsmeldingen en automatische meldingen wanneer een taak is voltooid.

Waarschuwing

Afzonderlijke taakstappen binnen een taak kunnen ook e-mail verzenden zonder SQL Server Agent te configureren voor het gebruik van Database Mail. Een Transact-SQL taakstap kan bijvoorbeeld Database Mail gebruiken om de resultaten van een query te verzenden naar een lijst met geadresseerden.

U kunt SQL Server Agent configureren om e-mailberichten te verzenden naar vooraf gedefinieerde operators wanneer:

  • Er wordt een waarschuwing geactiveerd. Waarschuwingen kunnen worden geconfigureerd voor het verzenden van e-mailmeldingen van specifieke gebeurtenissen die zich voordoen. Waarschuwingen kunnen bijvoorbeeld worden geconfigureerd om een operator op de hoogte te stellen van een bepaalde databasegebeurtenis of besturingssysteemvoorwaarde die mogelijk onmiddellijk actie moet ondernemen. Zie Waarschuwingen voor meer informatie over het configureren van waarschuwingen.

  • Een geplande taak, zoals een databaseback-up of replicatie-gebeurtenis, slaagt of mislukt. U kunt bijvoorbeeld SQL Server Agent Mail gebruiken om operators op de hoogte te stellen als er een fout optreedt tijdens de verwerking aan het einde van een maand.

Ondersteuning voor TDS 8.0

SQL Server 2025 (17.x) introduceert TDS 8.0-ondersteuning voor Database Mail. Het TDS 8.0-protocol biedt verbeterde beveiliging en versleuteling voor gegevens die worden verzonden tussen SQL Server en clienttoepassingen. Hierdoor kan Database Mail werken in omgevingen waar TLS 1.3-versleuteling en TDS 8.0 worden afgedwongen.