Nasıl Yapılır: Saklı yordamlar SQL Mail'den (Transact-SQL) veritabanı Mail'e dönüştürme

Veritabanı mektup e-posta gönderme sağlar SQL Server. Saklı yordamı kullanın. sp_send_dbmail e-posta göndermek için.Bu yordam gerekli bağımsız değişkenler için bağımsız değişkenler için benzer xp_sendmail.Bu nedenle, kullanan bir yordam dönüştürme xp_sendmail to use sp_send_dbmail açıktır.

En önemli ek parametre için sp_send_dbmail , ileti göndermek için isteğe bağlı posta profilidir.Kullanarak bir veritabanı posta profili oluşturma Veritabanı Adres Yapılandırma Sihirbazı, veya saklı veritabanı posta. Yalnızca msdb veritabanı, bir posta ana bilgisayar veritabanı olabilir.

saklı yordam SQL Mail veritabanı Mail'e dönüştürmek için

  1. Önceden etkinleştirilmiş veritabanı posta etkinleştirin.Veritabanı posta etkinleştirmek için , kullanmak Veritabanı Adres Yapılandırma Sihirbazı.

  2. Önceden oluşturulmuş bir profili yoksa, bir veritabanı posta profili oluşturun.Bir veritabanı posta profilinin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz: Nasıl Yapılır: Veritabanı posta özel profilleri (Transact-SQL) oluşturma.

  3. Çağrı Değiştir xp_sendmail çağrısı ilesp_send_dbmail.Bağımsız değişkenlerde eşleme xp_sendmail to sp_send_dbmail aşağıdaki tabloda gösterildiği gibi.

xp_sendmail değişken

bağımsız değişken sp_send_dbmail

@ Alıcılar

@ Alıcılar

@ ileti

@ Gövde

@ Sorgu

@ Sorgu

@ ekler

@ file_attachments

@ copy_recipients

@ copy_recipients

@ blind_copy_recipients

@ blind_copy_recipients

@ Konu

@ Konu

@ türü

n/a

@ attach_results

@ attach_query_result_as_file

@ no_output

@ exclude_query_output

@ no_header

@ query_result_header

@ genişliği

@ query_result_width

@ ayırıcısı

@ query_result_separator

@ echo_error

n/a

@ set_user

n/a

@ dbuse

@ execute_query_database

  1. Yordamınız güncelleştirdiğinizde, aşağıdaki farkları dikkate alın:

    • Hiçbir MAPI iletiyi yazarak kullanılabilir.Veritabanı posta genişletilmiş MAPI kullanmadığından, saklı yordam, ileti türü ayarlanamaz.

    • If the @query parameter is provided, any errors from the query are returned to the oturum that called sp_send_dbmail.

    • If the @query parameter is provided, the query runs as the current user.Ancak, sorgu, tüm geçerli Transact-yürütmek AS tabloları dahil SQL, içerebilir.

    • Veritabanı posta SQL Mail içinde desteklenmeyen aşağıdaki seçenekleri destekler:

    bağımsız değişken sp_send_dbmail

    Açıklama

    @ profile_name

    Ileti için kullanılacak posta profilini belirtir.Veritabanı posta birden çok profil ve iyileştirilmiş güvenilirlik ve ölçeklenebilirlik sağlamak, her profil için birden çok hesaplarını destekler.The @profile may be omitted if there is a default profile for mail host database or for the user calling sp_send_dbmail.

    @ body_format

    E-posta iletisinin, bir METIN veya HTML biçimi belirtir.

    @ önem

    E-posta iletisi için önemini belirtir.

    @ duyarlığı

    E-posta iletisinin duyarlılığı belirtir.

    @ query_attachment_filename

    Bir sorgunun sonuçlarını bir dosya olarak iliştirilen kullanılacak dosyanın adını belirtir.If you use the xp_sendmail @query parameter with @attach_results = TRUE, the @attachments parameter can specify only one file to attach to the mail message.sp_send_dbmail has both @file_attachments and

    @ query_attachment_filename.

Example

Aşağıdaki örnek SQL Mail ileti göndermek için kullanır. danw@Adventure-Works.com.

EXEC master.dbo.xp_sendmail 
    @recipients=N'danw@Adventure-Works.com',
    @message=N'The master database is full.' ;

Aşağıdaki örnek, aynı ileti göndermek için veritabanı posta ve geçerli kullanıcı için varsayılan profili kullanır:

EXEC msdb.dbo.sp_send_dbmail
    @recipients=N'danw@Adventure-Works.com',
    @body=N'The master database is full.' ;

Çalıştırılan yordamın bildirimi msdb veritabanıdır.