Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Database Mail Configuration

Termin Definicja
Database Mail Configuration

Database Mail Configuration to proces konfigurowania profili i kont wykorzystywanych przez ten mechanizm wysyłki wiadomości.

Rola Database Mail Configuration w SQL Server

Database Mail Configuration to konfiguracja mechanizmu Database Mail w Microsoft SQL Server, który umożliwia wysyłanie wiadomości e-mail z poziomu silnika bazy danych. Mechanizm jest używany między innymi przez zadania SQL Server Agent, alerty, procedury składowane oraz inne elementy środowiska SQL Server wymagające przekazania informacji pocztą elektroniczną. Konfiguracja nie polega na uruchomieniu pełnego serwera pocztowego. SQL Server korzysta z zewnętrznego serwera SMTP wskazanego w ustawieniach konta pocztowego.

Podstawowe elementy tej konfiguracji to konto Database Mail, profil Database Mail oraz uprawnienia użytkowników do korzystania z profilu. Konto przechowuje dane potrzebne do połączenia z serwerem SMTP, takie jak nazwa konta nadawcy, adres e-mail, nazwa hosta SMTP i sposób uwierzytelniania. Profil grupuje jedno lub więcej kont i może być publiczny albo prywatny. Dzięki temu mechanizm może mieć oddzielne ustawienia dla różnych zastosowań, a awaria jednego konta może być obsłużona przez kolejne konto przypisane do tego samego profilu.

Konta, profile i uprawnienia wysyłki

Konfigurację Database Mail można wykonywać w SQL Server Management Studio za pomocą kreatora konfiguracji Database Mail albo programistycznie, korzystając z procedur składowanych w bazie msdb. Typowy proces obejmuje utworzenie konta, utworzenie profilu, przypisanie konta do profilu oraz określenie, którzy użytkownicy mogą z niego korzystać. Konto nie jest tym samym co użytkownik bazy danych: opisuje tożsamość nadawcy i parametry połączenia SMTP, natomiast użytkownik otrzymuje uprawnienie do użycia profilu.

Profil publiczny może być używany przez użytkowników mających odpowiednie uprawnienia w bazie msdb, a profil prywatny jest przypisywany konkretnym użytkownikom lub rolom. Konfiguracja powinna uwzględniać zasadę najmniejszych uprawnień, ponieważ możliwość wysyłania wiadomości może być wykorzystana przez procedury lub zadania działające w kontekście określonego konta. W praktyce należy sprawdzić również domyślny profil Database Mail. Jeżeli profil jest ustawiony jako domyślny, wywołania procedury msdb.dbo.sp_send_dbmail mogą korzystać z niego bez podawania nazwy profilu w każdym wywołaniu.

Do wysyłania wiadomości służy przede wszystkim procedura sp_send_dbmail. Pozwala ona określić odbiorców, temat, treść, format wiadomości, listę kopii oraz opcjonalne zapytanie SQL, którego wynik może zostać dołączony do wiadomości lub zapisany jako załącznik. Samo wywołanie procedury zwykle tylko umieszcza wiadomość w kolejce Database Mail. Późniejsze połączenie z serwerem SMTP i próba dostarczenia są wykonywane asynchronicznie przez usługę Database Mail.

Parametry SMTP i przebieg dostarczania

Najczęstsze problemy podczas konfiguracji wynikają z niezgodności parametrów konta Database Mail z wymaganiami serwera SMTP. Należy zweryfikować nazwę hosta, port, wymaganie uwierzytelniania, nazwę użytkownika, hasło oraz ustawienia szyfrowania połączenia. Sam SQL Server nie gwarantuje, że dowolny serwer SMTP zaakceptuje wiadomość. Serwer pocztowy może odrzucić nadawcę, wymagać określonego sposobu uwierzytelniania albo blokować połączenia z danego adresu IP.

Wiadomość trafia do wewnętrznej kolejki Database Mail, a komponent zewnętrzny przetwarza ją i zapisuje wynik próby wysyłki. Status można analizować w widokach systemowych znajdujących się w bazie msdb, w szczególności w sysmail_allitems, sysmail_sentitems, sysmail_unsentitems oraz sysmail_faileditems. Szczegółowe informacje o błędach są dostępne w widoku sysmail_event_log. Przykładowo, status failed oznacza nieudaną próbę dostarczenia, natomiast wiadomość pozostająca w stanie nieprzetworzonym może wskazywać na problem z kolejką, profilem albo działaniem Database Mail.

Database Mail zapisuje konfigurację i historię wiadomości w bazie msdb, dlatego jej stan ma znaczenie dla diagnostyki. Istotne są także ustawienia parametrów systemowych Database Mail, między innymi limit rozmiaru wiadomości, liczba prób ponowienia wysyłki i czas oczekiwania na odpowiedź serwera SMTP. Zbyt duże załączniki, niepoprawnie zakodowane znaki lub zapytania zwracające błędy mogą powodować odrzucenie wiadomości niezależnie od poprawności samego połączenia z serwerem pocztowym.

Diagnostyka błędów konfiguracji Database Mail

Diagnostykę należy rozpocząć od ustalenia, na którym etapie występuje problem. Jeżeli sp_send_dbmail zwraca błąd natychmiast, należy sprawdzić istnienie profilu, uprawnienia użytkownika oraz poprawność parametrów procedury. Jeżeli procedura kończy się poprawnie, lecz wiadomość nie dociera, trzeba przeanalizować widoki kolejki i log zdarzeń Database Mail. Pozwala to odróżnić błąd konfiguracji SQL Server od odrzucenia wiadomości przez serwer SMTP.

Warto sprawdzić, czy konto może nawiązać połączenie z właściwym hostem i portem SMTP z maszyny, na której działa SQL Server. Połączenie może być blokowane przez zaporę sieciową, reguły routingu, ograniczenia serwera pocztowego albo błędny certyfikat przy połączeniu szyfrowanym. Należy również porównać adres nadawcy skonfigurowany w Database Mail z polityką serwera SMTP. Niektóre serwery dopuszczają wysyłkę wyłącznie z określonych adresów lub wymagają zgodności adresu nadawcy z uwierzytelnionym kontem.

Po zmianie ustawień należy wykonać kontrolną wysyłkę z użyciem prostego tematu i krótkiej treści, a następnie prześledzić jej status w msdb. Test powinien obejmować także rzeczywisty scenariusz, na przykład alert SQL Server Agent lub zadanie wywołujące sp_send_dbmail. Sama obecność profilu w kreatorze nie potwierdza poprawności całego przepływu, ponieważ dopiero przetworzenie kolejki i odpowiedź serwera SMTP pokazują, czy konfiguracja działa prawidłowo.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę