Dela via


Databassändning

gäller för:SQL ServerAzure SQL Managed Instance

Database Mail är en företagslösning för att skicka e-postmeddelanden från SQL Server Database Engine eller Azure SQL Managed Instance. Dina program kan skicka e-postmeddelanden till användare med hjälp av Database Mail via en extern SMTP-server. Meddelandena kan innehålla frågeresultat och kan även innehålla filer från valfri resurs i nätverket.

Anmärkning

Database Mail är tillgängligt i SQL Server Database Engine och Azure SQL Managed Instance, men inte i Azure SQL Database och elastiska pooler. Mer information om hur du använder Database Mail i Azure SQL Managed Instance finns i Automatisera hanteringsuppgifter med SQL Agent-jobb i Azure SQL Managed Instance.

Fördelar med att använda Database Mail

Database Mail är utformat för tillförlitlighet, skalbarhet, säkerhet och support.

Tillförlitlighet

  • Database Mail använder SMTP (Simple Mail Transfer Protocol) som standard för att skicka e-post. Du kan använda Database Mail utan att installera en utökad MAPI-klient på datorn som kör SQL Server.

  • Processisolering. För att minimera påverkan på SQL Server körs komponenten som levererar e-post utanför SQL Server i en separat process. SQL Server fortsätter att köa e-postmeddelanden även om den externa processen stoppas eller misslyckas. De köade meddelandena skickas när den externa processen eller SMTP-servern är online.

  • Redundanskonton. Med en Database Mail-profil kan du ange mer än en SMTP-server. Om en SMTP-server inte är tillgänglig kan e-post fortfarande levereras till en annan SMTP-server.

  • Klusterstöd. Database Mail är klustermedveten och stöds fullt ut i ett kluster.

Skalbarhet

  • Bakgrundsleverans: Database Mail tillhandahåller bakgrunds- eller asynkron leverans. När du anropar sp_send_dbmail för att skicka ett meddelande lägger Database Mail till en begäran i en Service Broker-kö. Den lagrade proceduren returnerar omedelbart. Den externa e-postkomponenten tar emot begäran och levererar e-postmeddelandet.

  • Flera profiler: Med Database Mail kan du skapa flera profiler i en SQL Server-instans. Du kan också välja den profil som Database Mail använder när du skickar ett meddelande.

  • Flera konton: Varje profil kan innehålla flera redundanskonton. Du kan konfigurera olika profiler med olika konton för att distribuera e-post över flera e-postservrar.

  • 64-bitars kompatibilitet: Database Mail stöds fullt ut vid 64-bitarsinstallationer av SQL Server.

Säkerhet

  • Av som standard: För att minska ytan på SQL Server inaktiveras lagrade Procedurer för Database Mail som standard.

  • E-postsäkerhet:Om du vill skicka Database Mail måste du vara medlem i databasrollen msdb i databasen.

  • Profilsäkerhet: Database Mail tillämpar säkerhet för e-postprofiler. Du väljer de msdb databasanvändare eller grupper som har åtkomst till en Database Mail-profil. Du kan bevilja åtkomst till antingen specifika användare eller alla användare i msdb. En privat profil begränsar åtkomsten till en angiven lista över användare. En offentlig profil är tillgänglig för alla användare i en databas.

  • Guvernör för storlek på bifogade filer: Database Mail tillämpar en konfigurerbar gräns för filstorleken för bifogade filer. Du kan ändra den här gränsen med hjälp av den sysmail_configure_sp lagrade proceduren.

  • Förbjudna filnamnstillägg: Database Mail har en lista över förbjudna filnamnstillägg. Användare kan inte bifoga filer med ett tillägg som visas i listan. Du kan ändra den här listan med hjälp av sysmail_configure_sp.

  • Database Mail körs under SQL Server Engine-tjänstkontot. Om du vill koppla en fil från en mapp till ett e-postmeddelande bör SQL Server-motorkontot ha behörighet att komma åt mappen med filen.

Supportbarhet

  • Integrerad konfiguration: Database Mail underhåller informationen för e-postkonton i SQL Server Database Engine. Du behöver inte hantera en e-postprofil i ett externt klientprogram. Konfigurationsguiden för databaspost är ett praktiskt gränssnitt för att konfigurera Database Mail. Du kan också skapa och underhålla Database Mail-konfigurationer med Hjälp av Transact-SQL.

  • Skogsavverkning. Database Mail loggar e-postaktivitet till SQL Server, händelseloggen för Microsoft Windows-programmet och till tabeller i msdb databasen.

  • Granskning: Database Mail behåller kopior av meddelanden och bifogade filer som skickas i msdb databasen. Du kan enkelt granska användningen av Database Mail och granska de kvarhållna meddelandena.

  • Stöd för HTML: Med Database Mail kan du skicka e-post formaterad som HTML.

Databas-e-postarkitektur

Database Mail är utformat för en köbaserad arkitektur som använder Service Broker-teknologier. När användarna kör sp_send_dbmailinfogar den lagrade proceduren ett objekt i e-postkön och skapar en post som innehåller e-postmeddelandet. Om du infogar den nya posten i e-postkön startas den externa Database Mail-processen (DatabaseMail.exe). Den externa processen läser e-postinformationen och skickar e-postmeddelandet till lämplig e-postserver eller -servrar. Den externa processen infogar ett objekt i statuskön för resultatet av sändningsåtgärden. När du infogar den nya posten i statuskön startas en intern lagrad procedur som uppdaterar statusen för e-postmeddelandet. Förutom att lagra det skickade eller ej skickade e-postmeddelandet registrerar Database Mail även eventuella e-postbilagor i systemtabellerna. Database Mail-vyer ger status för meddelanden för felsökning och lagrade procedurer möjliggör administration av Database Mail-kön.

Diagram över hur msdb-systemdatabasen skickar meddelanden till en SMTP-e-postserver.

Introduktion till Database Mail-komponenter

Database Mail består av följande huvudkomponenter:

  • Konfigurations- och säkerhetskomponenter

    Database Mail lagrar konfigurations- och säkerhetsinformation i msdb databasen. Konfigurations- och säkerhetsobjekt skapar profiler och konton som används av Database Mail.

  • Meddelandekomponenter

    Databasen msdb fungerar som den e-postvärddatabas som innehåller de meddelandeobjekt som Database Mail använder för att skicka e-post. Dessa objekt omfattar den sp_send_dbmail lagrade proceduren och de datastrukturer som innehåller information om meddelanden.

  • Körbart program för databasmail

    Databasmail-körfilen är ett externt program som läser från en kö i msdb-databasen och skickar meddelanden till e-postservrar.

  • Loggnings- och granskningskomponenter

    Database Mail registrerar loggningsinformation i msdb databasen och händelseloggen för Microsoft Windows-program.

Konfigurera SQL Agent för att använda Database Mail

SQL Server-agenten kan konfigureras för att använda Database Mail. Detta krävs för aviseringsmeddelanden och automatiska meddelanden när ett jobb har slutförts.

Varning

Enskilda jobbsteg i ett jobb kan också skicka e-post utan att konfigurera SQL Server Agent för att använda Database Mail. Ett Transact-SQL jobbsteg kan till exempel använda Database Mail för att skicka resultatet av en fråga till en lista över mottagare.

Du kan konfigurera SQL Server Agent för att skicka e-postmeddelanden till fördefinierade operatorer när:

  • Ett larm utlöses. Aviseringar kan konfigureras för att skicka e-postmeddelanden om specifika händelser som inträffar. Aviseringar kan till exempel konfigureras för att meddela en operatör om en viss databashändelse eller operativsystemvillkor som kan behöva åtgärdas omedelbart. Mer information om hur du konfigurerar aviseringar finns i Aviseringar.

  • En schemalagd aktivitet, till exempel en databassäkerhetskopia eller replikeringshändelse, lyckas eller misslyckas. Du kan till exempel använda SQL Server Agent Mail för att meddela operatörer om ett fel inträffar under bearbetningen i slutet av en månad.

Stöd för TDS 8.0

SQL Server 2025 (17.x) introducerar TDS 8.0-stöd för Database Mail. TDS 8.0-protokollet ger förbättrad säkerhet och kryptering för data som överförs mellan SQL Server och klientprogram. Detta gör att Database Mail kan fungera i miljöer där TLS 1.3-kryptering och TDS 8.0 tillämpas.