Aracılığıyla paylaş


Nasıl yapılır: SQL Mail saklı yordamlar (Transact-SQL) veritabanı posta için dönüştürme

E-posta gönderme posta sağlar veritabanı SQL Server.Use saklı yordam sp_send_dbmail e-posta göndermek için.Bu yordamı gerektiren bağımsız değişkenleri için benzer xp_sendmail.Bu nedenle, dönüştürme kullanan yordamı xp_sendmail kullanmak için sp_send_dbmail açıktır.

En önemli ek parametre için sp_send_dbmail ileti göndermek için kullanılacak isteğe bağlı posta profili.Kullanarak bir veritabanı posta profili oluşturma Veritabanı posta Yapılandırma Sihirbazı, ya da Database Mail saklı yordamlar.Sadece msdb veritabanı posta ana bilgisayar veritabanı olabilir.

Database Mail'i sql Mail saklı yordam dönüştürmek için

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

  2. Önceden oluşturulmuş bir profili yoksa, bir veritabanı posta profili oluşturun.Bir veritabanı posta profili oluşturma hakkında daha fazla bilgi için bkz: Nasıl yapılır: (Transact-SQL) veritabanı posta özel profiller oluştur.

  3. Çağrı yerini xp_sendmail bir çağrı ile sp_send_dbmail.Bağımsız değişkenlerde eşleme xp_sendmail için sp_send_dbmail aşağıdaki gösterildiği gibi tablo.

xp_sendmail bağımsız değişkeni

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

@ Alıcılar

@ Alıcılar

@ ileti

@ Gövde

@ Sorgu

@ Sorgu

@ ekleri

@ file_attachments

@ copy_recipients

@ copy_recipients

@ blind_copy_recipients

@ blind_copy_recipients

@ Konu

@ Konu

@ türü

Yok

@ 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ı

@ query_result_separator

@ echo_error

Yok

@ set_user

Yok

@ dbuse

@ execute_query_database

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

    • Hiçbir MAPI ileti yazarak kullanılabilir.Database Mail'i Genişletilmiş MAPI kullanmadığından, saklı yordam olamaz küme ileti türü.

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

    • If the @query parameter is provided, the query runs as the current user.Ancak, sorgu herhangi bir geçerli içerebilir Transact-SQL, execute as ifadeler de dahil olmak üzere.

    • Database Mail'i sql posta ile desteklenen aşağıdaki seçenekleri destekler:

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

    Açıklama

    @ Profil_adı

    Posta profili için iletiyi belirtir.Veritabanı posta birden çok profil ve birden çok hesap için geliştirilmiş güvenilirlik ve ölçeklenebilirlik sağlamak üzere her bir profili 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çimini belirtir.

    @ önem

    E-posta iletisi için önemini belirtir.

    @ duyarlılığı

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

    @ query_attachment_filename

    Kullanılacak dosya adını belirtir sonuçlar için bir sorgu dosyası olarak eklenir.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.

Örnek

Aşağıdaki örnek, bir ileti göndermek için kullanır sql Mail 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ı iletiyi 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.' ;

Yordamı çalıştırır, dikkat edin msdb veritabanı.