Sdílet prostřednictvím


Databázová pošta

platí pro:SQL Serverazure SQL Managed Instance

Databázová pošta je podnikové řešení pro odesílání e-mailových zpráv z databázového stroje SQL Serveru nebo spravované instance Azure SQL. Aplikace můžou uživatelům odesílat e-mailové zprávy pomocí databázové pošty prostřednictvím externího serveru SMTP. Zprávy můžou obsahovat výsledky dotazu a můžou také obsahovat soubory z libovolného prostředku ve vaší síti.

Poznámka:

Databázová pošta je dostupná v databázovém stroji SQL Serveru a ve službě Azure SQL Managed Instance, ale není dostupná v Azure SQL Database a elastických fondech. Další informace o používání databázové pošty ve službě Azure SQL Managed Instance najdete v tématu Automatizace úloh správy pomocí úloh agenta SQL ve službě Azure SQL Managed Instance.

Výhody používání databázové pošty

Databázová pošta je navržená pro spolehlivost, škálovatelnost, zabezpečení a možnosti podpory.

Spolehlivost

  • Databázová pošta používá k odesílání pošty standardní protokol SMTP (Simple Mail Transfer Protocol). Můžete použít databázovou poštu bez instalace klienta rozšířeného rozhraní MAPI na počítači, na kterém běží SQL Server.

  • Izolace procesů. Aby se minimalizoval dopad na SQL Server, komponenta, která doručuje e-maily mimo SQL Server, běží v samostatném procesu. SQL Server bude dál zařadovat e-mailové zprávy do fronty, i když se externí proces zastaví nebo selže. Zprávy ve frontě se odešlou, jakmile bude vnější proces nebo server SMTP online.

  • Účty pro převzetí při selhání Profil databázové pošty umožňuje zadat více než jeden server SMTP. Pokud server SMTP není dostupný, je možné poštu doručit na jiný server SMTP.

  • Podpora clusteru Databázová pošta je kompatibilní s clustery a je plně podporovaná na clusteru.

Škálovatelnost

  • Doručování na pozadí: Databázová pošta poskytuje doručování na pozadí nebo asynchronní doručování. Když zavoláte sp_send_dbmail k odeslání zprávy, Databázová pošta přidá požadavek do fronty Service Broker. Uložená procedura okamžitě vrací výsledek. Externí e-mailová komponenta obdrží požadavek a doručí e-mail.

  • Více profilů: Databázová pošta umožňuje vytvořit více profilů v instanci SQL Serveru. Volitelně můžete zvolit profil, který používá Databázová pošta při odesílání zprávy.

  • Více účtů: Každý profil může obsahovat více účtů pro převzetí služeb při selhání. Pro distribuci e-mailu mezi více e-mailových serverů můžete nakonfigurovat různé profily s různými účty.

  • 64bitová kompatibilita: Databázová pošta je plně podporovaná v 64bitových instalacích SQL Serveru.

Zabezpečení

  • Ve výchozím nastavení vypnuto: Pokud chcete snížit plochu SQL Serveru, jsou uložené procedury databázové pošty ve výchozím nastavení zakázané.

    • Chcete-li konfigurovat databázovou poštu, musíte být členem sysadmin pevné role serveru.
  • Zabezpečení pošty: Chcete-li odeslat databázovou poštu, musíte být členem role databáze DatabaseMailUserRole v msdb databázi.

  • Zabezpečení profilu: Databázová pošta vynucuje zabezpečení pro e-mailové profily. Zvolíte msdb uživatele nebo skupiny databáze, které mají přístup k profilu Databázové pošty. Přístup můžete udělit konkrétním uživatelům nebo všem uživatelům v msdbaplikaci . Soukromý profil omezuje přístup k zadanému seznamu uživatelů. Veřejný profil je k dispozici všem uživatelům v databázi.

  • Správce velikosti příloh: Databázová pošta vynucuje konfigurovatelný limit velikosti souboru přílohy. Tento limit můžete změnit pomocí sysmail_configure_sp uložené procedury.

  • Zakázané přípony souborů: Database Mail udržuje seznam zakázaných přípon souborů. Uživatelé nemůžou připojit soubory s příponou, která se zobrazí v seznamu. Tento seznam můžete změnit pomocí sysmail_configure_sp.

  • Databázová pošta běží pod účtem služby SQL Server Engine. Pokud chcete připojit soubor ze složky k e-mailu, měl by mít účet modulu SQL Serveru oprávnění pro přístup ke složce se souborem.

Udržovatelnost

  • Integrovaná konfigurace: Databázová pošta uchovává informace pro e-mailové účty v databázovém stroji SQL Serveru. V externí klientské aplikaci není potřeba spravovat e-mailový profil. Průvodce konfigurací databázové pošty poskytuje pohodlné rozhraní pro konfiguraci databázové pošty. Můžete také vytvářet a udržovat konfigurace databázové pošty pomocí jazyka Transact-SQL.

  • Protokolování. Databázová pošta protokoluje e-mailovou aktivitu na SQL Server, protokol událostí aplikace Microsoft Windows a tabulky v msdb databázi.

  • Auditování: Databázová pošta uchovává kopie zpráv a příloh odesílaných v msdb databázi. Můžete snadno auditovat využití databázové pošty a kontrolovat zachované zprávy.

  • Podpora HTML: Databázová pošta umožňuje odesílat e-maily formátované jako HTML.

Architektura databázové pošty

Databázová pošta je navržena na frontové architektuře, která používá technologie služby Service Broker. Když uživatelé spustí sp_send_dbmail, uložená procedura vloží položku do poštovní fronty a vytvoří záznam, který obsahuje e-mailovou zprávu. Vložení nové položky do poštovní fronty spustí proces externí databázové pošty (DatabaseMail.exe). Externí proces přečte e-mailové informace a odešle e-mailovou zprávu na příslušný e-mailový server nebo servery. Externí proces vloží položku do fronty stavu pro výsledek operace odeslání. Vložení nové položky do stavové fronty spustí interní uloženou proceduru, která aktualizuje stav e-mailové zprávy. Kromě uložení odeslaných nebo neodeslaných e-mailových zpráv zaznamenává databázová pošta také všechny e-mailové přílohy v systémových tabulkách. Náhledy Databázového Mailu poskytují stav zpráv k řešení problémů a uložené procedury umožňují správu fronty Databázového Mailu.

Diagram způsobu, jakým systémová databáze msdb odesílá zprávy na poštovní server SMTP

Úvod do komponent Databázové pošty

Databázová pošta se skládá z následujících hlavních komponent:

  • Konfigurace a součásti zabezpečení

    Databázová pošta ukládá informace o konfiguraci a zabezpečení v msdb databázi. Objekty konfigurace a zabezpečení vytvářejí profily a účty používané službou Database Mail.

  • Komponenty zasílání zpráv

    Databáze msdb funguje jako databáze hostitele pošty, která obsahuje objekty pro zasílání zpráv, které databázová pošta používá k odesílání e-mailů. Tyto objekty zahrnují uloženou proceduru sp_send_dbmail a datové struktury, které obsahují informace o zprávách.

  • Spustitelný soubor databázové pošty

    Spustitelný soubor Databázové pošty je externí program, který čte z fronty v msdb databázi a odesílá zprávy e-mailovým serverům.

  • Protokolování a auditování komponentů

    Databázová pošta zaznamenává informace o protokolování v msdb databázi a protokolu událostí aplikace Microsoft Windows.

Konfigurace agenta SQL pro použití databázové pošty

Agent SQL Serveru lze nakonfigurovat k používání Database Mail. To se vyžaduje pro oznámení výstrah a automatické oznámení po dokončení úlohy.

Výstraha

Jednotlivé kroky úlohy v rámci úlohy můžou také odesílat e-maily bez konfigurace agenta SQL Serveru tak, aby používaly databázovou poštu. Například krok úlohy Transact-SQL může pomocí databázové pošty odeslat výsledky dotazu do seznamu příjemců.

Agenta SQL Serveru můžete nakonfigurovat tak, aby odesílal e-mailové zprávy předdefinovaným operátorům v těchto případech:

  • Aktivuje se upozornění. Výstrahy je možné nakonfigurovat tak, aby odesílaly e-mailové oznámení o konkrétních událostech, ke kterým dochází. Výstrahy lze například nakonfigurovat tak, aby operátora upozorňují na konkrétní událost databáze nebo podmínku operačního systému, které by mohly vyžadovat okamžitou akci. Další informace o konfiguraci výstrah najdete v tématu Výstrahy.

  • Naplánovaná úloha, například zálohování databáze nebo událost replikace, proběhne úspěšně nebo selže. Pomocí pošty agenta SQL Serveru můžete například upozornit operátory, pokud během zpracování na konci měsíce dojde k chybě.

Pokud chcete začít konfigurovat agenta SQL tak, aby používal databázová pošta, přečtěte si téma Konfigurace pošty agenta SQL Serveru pro použití databázové pošty.

Databázová pošta s omezením skupin dostupnosti

Chcete-li používat databázovou poštu s obsaženými skupinami dostupnosti, musíte se připojit k instanci a povolit XPs rozhraní databázové pošty (možnost konfigurace serveru) pomocí systémové uložené procedury sp_configure. Tento krok musí být dokončen na všech replikách v obsahované skupině dostupnosti.

  • Pokud se při připojení k posluchači omezeného skupiny dostupnosti pokusíte povolit sp_configure možnost pro databázovou poštu, zobrazí se očekávaná chyba: Changes to server configuration options are not permitted in the connection to Contained Availability Group. Change connection to SQL Server instance level and retry the operation. (Microsoft SQL Server, Error: 5874)

Po povolení Database Mail XPs možnosti na všech replikách se připojte k naslouchacímu procesu ohraničené skupiny dostupnosti a pokračujte v konfiguraci databázové pošty, jak je popsáno v části Vybrat konfigurační úlohu. Tím zajistíte, že objekty pošty databáze existují v rámci obsažené skupiny dostupnosti a zůstanou synchronizované.

Podpora TDS 8.0

SQL Server 2025 (17.x) zavedl podporu TDS 8.0 pro Database Mail. Protokol TDS 8.0 poskytuje rozšířené zabezpečení a šifrování dat přenášených mezi SQL Serverem a klientskými aplikacemi. To umožňuje, aby databázová pošta fungovala v prostředích, kde se vynucuje šifrování TLS 1.3 a TDS 8.0.

Troubleshoot

Informace o řešení potíží s databázovou poštou najdete v tématu:

Další krok