Udostępnij za pośrednictwem


sp_processmail (języka Transact-SQL)

Używa rozszerzone procedury przechowywane (xp_findnextmsg, xp_readmail, i xp_deletemail) do przetwarzania przychodzących wiadomości ze skrzynki odbiorczej dla Microsoft SQL Server.Każdy komunikat powinien zawierać jedną kwerendę w treści wiadomości.Ta procedura wykorzystuje xp_sendmail rozszerzona procedura składowana zwraca zestaw wyników jako załącznik do nadawcy wiadomości.

Ważna informacjaWażne:

Należy unikać stosowania tej procedury.Sp_processmail procedury przetwarzania informacji wysłanych przez pocztę z nieznanych źródeł i mogą być używane wprowadzenie złośliwego kodu do środowiska.Należy wykonać dużą ostrożność, aby sprawdzić poprawność kodu przed jego wykonaniem.Ta procedura jest uwzględniony w zgodności z poprzednimi wersjami, ale nie jest zainstalowany, dopóki nie zostanie włączona poczta SQL .

Ostrzeżenie

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_processmail [ [ @subject = ] 'subject' ] 
     [ , [ @filetype = ] 'filetype' ] 
     [ , [ @separator = ] 'separator' ] 
     [ , [ @set_user = ] 'user' ] 
     [ , [ @dbuse = ] 'dbname' ]

Argumenty

  • [ @ podmiotu = ] 'temat"
    Jest wiersz tematu wiadomości e-mail do interpretowania jako kwerendy mail dla SQL Server do procesu. subject jest varchar(255), domyślna wartość NULL.Po określeniu sp_processmail przetwarza tylko te wiadomości, które mają tego tematu.Domyślnie SQL Server przetwarza wszystkie wiadomości tak, jakby ich treść wiadomości zawiera kwerendy.

  • [ @ typ_pliku = ] 'typ_pliku"
    To rozszerzenie pliku używane podczas kwerendy zestaw wyników jest wysyłany do nadawcy wiadomości jako załącznik.filetypejest varchar(3), domyślna wartość "" txt "".

  • [ @ separatora = ] 'separatora"
    To menu separator kolumna (pole terminator) dla każdej kolumna zestaw wyników.Ta informacja jest przekazywana do xp_sendmail rozszerzona procedura składowana powrót zestaw wyników do nadawcy wiadomości.separatorjest varchar(3), z domyślnymi karcie, która jest szczególny przypadek tabulator używane między kolumnami.

  • [ @ set_user = ] 'użytkownika"
    Jest kontekst zabezpieczeń, w którym należy uruchomić kwerendę.userjest varchar(132), domyślnie guest.

  • [ @ dbuse = ] 'dbname"
    Jest kontekst bazy danych, w którym należy uruchomić kwerendę.dbname jest varchar(132), domyślnie wzorca.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

Brak

Uwagi

Przychodząca wiadomość e-mail oczekuje posiada jeden prawidłowy SQL Server kwerendy jako tekst wiadomości.sp_processmail obsługuje tylko nieprzeczytane wiadomości.wyniki kwerendy są zwracane do nadawcy wiadomości i kopiowane do użytkowników e-mail DW: Lista wiadomości oryginalnej.Po przetworzeniu wiadomości są usuwane z folderu Skrzynka odbiorcza.Jeśli wiadomość e-mail wysyłana jest często do serwera, sp_processmail powinien być uruchamiany często.Aby zestaw przetwarzanie zwykłe wiadomości e-mail, można użyć SQL Server agenta planowania sp_processmail zadanie.Przetwarza pocztę dla określonej częstotliwości, a rekordy komunikat informacyjny z liczbą kwerend przetwarzane whistoria zadanie.

Wyniki są wysyłane jako dołączonego pliku.Pełnej nazwy pliku wysyłane składa się z "sql" po której następuje ciąg losowe numery i rozszerzenie typu pliku, na przykład Sql356.txt.

Ważna informacjaWażne:

Do wiadomości dołączyć odpowiednią ikonę, upewnij się, że typ pliku skojarzony jest poprawnie.Aby utworzyć skojarzenie pliku, kliknij dwukrotnie Mój komputer na pulpicie i wybierz Opcje folderów z Narzędzia menu.Na Typy plików kartę w Opcje folderów okno dialogowe Określ aplikację do otwarcia tego pliku.

Różne sp_processmail zadań może być zestaw dla kwerend w różnych bazach danych.Na przykład, można przyjąć Konwencji, który wykonuje kwerendę do AdventureWorks2008R2 bazy danych musi być przedmiotem "SQL: AdventureWorks." Następnie można uruchomić sp_processmail Określanie subject z* SQL: AdventureWorks i dbname z AdventureWorks2008R2.Kwerendy innej bazy danych i grupy mogą mieć inne formatowania struktury.Na przykład dystrybucji zadania może mieć subject z SQL: rozkład i dbname z *rozkładu.Każdego z tych mogą być zaplanowane zadania z SQL Server agenta.

Sp_processmail system procedura składowana można również dostosować na wiele sposobów, pobierając tekst procedury z sp_helptext systemu procedura składowana, modyfikowanie kodu języka Transact -SQL i tworzenie nowej procedury przy użyciu dostosowanego zachowania.Możliwe zmiany obejmują:

  • Przetwarzać tylko niektórych typów niestandardowy komunikat, za pomocą typu @ parametru z xp_findnextmsg rozszerzona procedura składowana.

  • Oznaczanie wiadomości jako read , ale nie usuwa wiadomości po przetworzeniu (wykonać xp_readmail czas z peek zestaw na false).

  • Wyślij wyniki kwerendy w treści wiadomości e-mail przez wywołanie xp_sendmail z attach_result zestaw na falsei usuwanie attachments parametru.

  • Ustaw kontekst zabezpieczeń, aby uruchomić kwerendę w kontekście użytkownika oparte na nadawcy wiadomości.Jeśli nazwy użytkowników e-mail są takie same, jak na SQL Server nazwy użytkownika jest to tak proste, jak zmiana wywołanie xp_sendmail używać set_user = zleceniodawcy @.Jeśli nazwy użytkownika poczty nie są prawidłowe SQL Server użytkownika nazwy (na przykład, jeśli zawierają one owiatła), może zrobić podstawiania tabela odnośników lub znak uzyskanie odpowiedniego SQL Server nazwę użytkownika, aby przekazać do xp_sendmail.

Uprawnienia

Tylko członkowie sysadmin stała rola serwera można wykonać tę procedurę.

Przykłady

Poniższy przykład przetwarza wszystkie wiadomości w Skrzynce odbiorczej jako kwerendy w AdventureWorks2008R2 bazy danych.Zestawy wyników są zwracane do klient w CSV format (wartości oddzielone przecinkami).

EXEC sp_processmail
    @filetype = 'CSV'
    ,@separator = ','
    ,@dbuse = 'AdventureWorks2008R2';