Adatbázisposta

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

A Database Mail egy vállalati megoldás, amely e-maileket küld az SQL Server Adatbázismotorból vagy a felügyelt Azure SQL-példányból. Az alkalmazások e-maileket küldhetnek a felhasználóknak a Database Mail használatával egy külső SMTP-kiszolgálón keresztül. Az üzenetek tartalmazhatnak lekérdezési eredményeket, és a hálózat bármely erőforrásából származó fájlokat is tartalmazhatnak.

Megjegyzés:

A Database Mail az SQL Server Adatbázismotorban és a felügyelt Azure SQL-példányban érhető el, de az Azure SQL Database-ben és a rugalmas készletekben nem. További információ a Database Mail felügyelt Azure SQL-példányban való használatáról: Felügyeleti feladatok automatizálása SQL Agent-feladatok használatával a felügyelt Azure SQL-példányban.

A Database Mail használatának előnyei

A Database Mail a megbízhatóságra, a méretezhetőségre, a biztonságra és a támogatottságra szolgál.

Megbízhatóság

  • A Database Mail a szabványos Simple Mail Transfer Protocol (SMTP) protokollt használja a levelek küldésére. A Database Mail alkalmazást anélkül használhatja, hogy kiterjesztett MAPI-ügyfelet telepítene az SQL Servert futtató számítógépre.

  • Folyamatelkülönítés. Az SQL Serverre gyakorolt hatás minimalizálása érdekében az e-maileket kézbesítő összetevő az SQL Serveren kívül, külön folyamaton belül fut. Az SQL Server akkor is várólistára küldi az e-maileket, ha a külső folyamat leáll vagy meghiúsul. Az üzenetsorba helyezett üzeneteket a rendszer a külső folyamat vagy az SMTP-kiszolgáló online állapotba helyezése után küldi el.

  • Feladatátvételi fiókok. A Database Mail-profilokkal több SMTP-kiszolgálót is megadhat. Ha egy SMTP-kiszolgáló nem érhető el, a levelek továbbra is kézbesíthetők egy másik SMTP-kiszolgálóra.

  • Cluster támogatás. A Database Mail fürtérzékeny, és teljes mértékben támogatott egy fürtön.

Skálázhatóság

  • Háttérkézbesítés: Az Adatbázisposta háttérszolgáltatást vagy aszinkron kézbesítést biztosít. Amikor ön üzenetet küld sp_send_dbmail, a Database Mail egy kérést ad hozzá egy Service Broker sorhoz. A tárolt eljárás azonnal eredményt ad. A külső e-mail összetevő megkapja a kérést, és kézbesíti az e-mailt.

  • Több profil: A Database Mail lehetővé teszi több profil létrehozását egy SQL Server-példányon belül. Tetszés szerint kiválaszthatja azt a profilt, amelyet a Database Mail használ az üzenet küldésekor.

  • Több fiók: Minden profil több feladatátvevő fiókot tartalmazhat. Különböző profilokat konfigurálhat különböző fiókokkal, hogy az e-maileket több e-mail-kiszolgálón is eloszthassa.

  • 64 bites kompatibilitás: A Database Mail teljes mértékben támogatott az SQL Server 64 bites telepítéseinél.

Biztonság

  • Alapértelmezés szerint kikapcsolva: Az SQL Server felületének csökkentése érdekében alapértelmezés szerint a Database Mail tárolt eljárásai le vannak tiltva.

    • A Database Mail konfigurálásához a sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie.
  • Levelezés biztonsága: A Database Mail küldéséhez a DatabaseMailUserRole adatbázis-szerepkör tagjának kell lennie az msdb adatbázisban.

  • Profilbiztonság: A Database Mail a levelezési profilok biztonságát kényszeríti ki. Kiválaszthatja azokat az msdb adatbázis-felhasználókat vagy csoportokat, amelyek hozzáféréssel rendelkeznek adatbázis-levelezési profilhoz. Hozzáférést adhat adott felhasználóknak, vagy az összes felhasználónak.msdb A privát profilok a felhasználók megadott listájához való hozzáférést korlátozzák. Egy nyilvános profil az adatbázis összes felhasználója számára elérhető.

  • Mellékletméret-vezérlő: A Database Mail konfigurálható korlátot kényszerít a mellékletfájl méretére. Ezt a korlátot a sysmail_configure_sp tárolt eljárással módosíthatja.

  • Tiltott fájlkiterjesztések: A Database Mail megőrzi a tiltott fájlkiterjesztések listáját. A felhasználók nem csatolhatnak a listában megjelenő kiterjesztésű fájlokat. Ezt a listát sysmail_configure_sp használatával módosíthatja.

  • A Database Mail az SQL Server Engine szolgáltatásfiókja alatt fut. Ha egy mappából származó fájlt e-mailhez szeretne csatolni, az SQL Server-motorfióknak engedélyekkel kell rendelkeznie ahhoz, hogy hozzáférjen a fájllal rendelkező mappához.

Támogatottság

  • Integrált konfiguráció: A Database Mail az SQL Server Adatbázismotoron belül tartja fenn az e-mail fiókok adatait. Nincs szükség levelezési profil kezelésére egy külső ügyfélalkalmazásban. Az Adatbázisposta konfigurációs varázsló kényelmes felületet biztosít a Database Mail konfigurálásához. Database Mail-konfigurációkat a Transact-SQL használatával is létrehozhat és kezelhet.

  • Fakitermelés. A Database Mail naplózza az SQL Serverre, a Microsoft Windows alkalmazás eseménynaplójába és az msdb adatbázisban lévő táblákra irányuló e-mail-tevékenységeket.

  • Naplózás: A Database Mail megőrzi az adatbázisban küldött üzenetek és mellékletek másolatait msdb . Könnyedén naplózhatja a Database Mail használatát, és áttekintheti a megtartott üzeneteket.

  • HTML-támogatás: A Database Mail lehetővé teszi, hogy HTML formátumú e-maileket küldjön.

Adatbázis levelezési architektúrája

A Database Mail szolgáltatásközvetítő technológiákat használó, üzenetsoros architektúrára készült. Amikor a felhasználók végrehajtják sp_send_dbmail, a tárolt eljárás beszúr egy elemet az üzenetsorba, és létrehoz egy rekordot, amely tartalmazza az e-mail üzenetet. Az új bejegyzés beszúrása a levelezési üzenetsorba elindítja a külső adatbázis levelezési folyamatát (DatabaseMail.exe). A külső folyamat beolvassa az e-mail adatokat, és elküldi az e-mail üzenetet a megfelelő e-mail kiszolgálónak vagy kiszolgálóknak. A külső folyamat beszúr egy elemet az Állapotsorba a küldési művelet eredményéhez. Az új bejegyzésnek az állapotsorba való beszúrása elindít egy belső tárolt eljárást, amely frissíti az e-mail állapotát. Az elküldött vagy nem küldött e-mailek tárolása mellett a Database Mail a rendszertáblákban lévő e-mail mellékleteket is rögzíti. A Database Mail-nézetek biztosítják a hibaelhárításhoz szükséges üzenetek állapotát, a tárolt eljárások pedig lehetővé teszik az Adatbázisposta-üzenetsor felügyeletét.

Ábra arról, hogy az msdb rendszeradatbázis hogyan küld üzeneteket egy SMTP-levelezőkiszolgálónak.

A Database Mail összetevőinek bemutatása

A Database Mail a következő fő összetevőkből áll:

  • Konfigurációs és biztonsági összetevők

    A Database Mail az adatbázisban tárolja a msdb konfigurációs és biztonsági információkat. A konfigurációs és biztonsági objektumok profilokat és fiókokat hoznak létre, amelyeket a Database Mail használ.

  • Üzenetkezelési összetevők

    Az msdb adatbázis a Database Mail által az e-mailek küldéséhez használt üzenetkezelési objektumokat tartalmazó levelezési gazdaadatbázisként működik. Ezek az objektumok magukban foglalják a sp_send_dbmail tárolt eljárást és az üzenetekkel kapcsolatos információkat tároló adatstruktúrákat.

  • Végrehajtható adatbázis-levelezés

    Az Adatbázisposta végrehajtható fájl egy külső alkalmazás, amely az msdb adatbázis üzenetsorát olvassa, és üzeneteket küld e-mail szerverekre.

  • Naplózási és auditálási összetevők

    A Database Mail az adatbázisban és a Microsoft Windows alkalmazás eseménynaplójában rögzíti a msdb naplózási adatokat.

Az SQL Agent konfigurálása a Database Mail használatára

Az SQL Server-ügynök konfigurálható a Database Mail használatára. Ez szükséges a riasztási értesítésekhez és az automatikus értesítéshez, amikor egy feladat befejeződik.

Figyelmeztetés

A feladaton belüli egyes feladatlépések is küldhetnek e-maileket anélkül, hogy konfigurálták az SQL Server Agentet a Database Mail használatára. Egy Transact-SQL feladatlépés például a Database Mail használatával küldheti el a lekérdezés eredményeit a címzettek listájára.

Az SQL Server-ügynök konfigurálható úgy, hogy e-maileket küldjön előre definiált operátoroknak, ha:

  • A rendszer riasztást indít el. A riasztások úgy konfigurálhatók, hogy e-mailben értesítést küldjenek az adott eseményekről. A riasztások például úgy konfigurálhatók, hogy értesítsék az operátort egy adott adatbáziseseményről vagy operációsrendszer-feltételről, amely azonnali beavatkozást igényelhet. A riasztások konfigurálásáról további információt a Riasztások című témakörben talál.

  • Egy ütemezett feladat, például egy adatbázis biztonsági mentése vagy replikációs eseménye sikeres vagy sikertelen. Az SQL Server Agent Mail használatával például értesítheti az operátorokat, ha egy hónap végén a feldolgozás során hiba történik.

Az SQL Agent Database Mail használatára való konfigurálásának első lépéseit az SQL Server Agent levelezésének konfigurálása a Database Mail használatára című témakörben talál.

Adatbázis levelezés tartalmazott rendelkezésre állási csoportokkal

Ha zártkörű rendelkezésre állási csoportokkal szeretné használni az Adatbázis-levelezést, csatlakoznia kell a példányhoz, és engedélyeznie kell a Database Mail XPs (kiszolgálókonfigurációs beállítás) használatát a sp_configure rendszerrel tárolt eljárás segítségével. Ezt a lépést a foglalt rendelkezésre állási csoport összes replikáján végre kell hajtani.

  • Ha megkísérli engedélyezni az sp_configure opciót az adatbázisposta számára, amikor csatlakozik a tartalmazott elérhetőségi csoport figyelőjéhez, a várt hibaüzenet jelenik meg: 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)

Miután engedélyezte a Database Mail XPs beállítást az összes replikán, csatlakozzon a tartalmazott rendelkezésre állási csoport figyelőjéhez, hogy folytathassa az adatbázis levélküldési konfigurációjának beállítását a Konfiguráció kiválasztása feladatban leírtak szerint. Ez biztosítja, hogy az adatbázis levelezési objektumai a foglalt rendelkezésre állási csoportban legyenek, és szinkronizálva maradjanak.

TDS 8.0-támogatás

Az SQL Server 2025 (17.x) bevezette a TDS 8.0 támogatását a Database Mailhez. A TDS 8.0 protokoll fokozott biztonságot és titkosítást biztosít az SQL Server és az ügyfélalkalmazások között továbbított adatokhoz. Ez lehetővé teszi a Database Mail használatát olyan környezetekben, ahol a TLS 1.3 titkosítás és a TDS 8.0 kényszerítve van.

Hibaelhárítás

A Database Mail hibaelhárításához látogasson el a következő címre:

Következő lépés