Aracılığıyla paylaş


sp_processmail (Transact-SQL)

Uses extended stored procedures (xp_findnextmsg, xp_readmail, and xp_deletemail) to process incoming mail messages from the inbox for Microsoft SQL Server.Her iletinin ileti gövdesini tek bir sorguda içeren bekleniyordu.Bu yordamı kullanan xp_sendmail genişletilmiş saklı yordam ek iletinin göndereni olarak küme bir sonuca dönmek için.

Important noteImportant Note:

Bu yordamı kullanmayın.The sp_processmail procedure processes information sent to you by mail from unknown sources and can be used to introduce malicious code into your environment.Yürütmeden önce kodu doğrulamak için mükemmel bir bakım gerçekleştirmeniz gerekir.Bu yordamı, geriye doğru uyumluluk için eklenmiştir, ancak SQL Mail etkinleştirene kadar yüklü değil.

Not

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @subject = ] 'subject'
    Is the subject line of mail messages to interpret as query mails for SQL Server to process.subject is varchar(255), with a default of NULL.Belirtilen zaman sp_processmail bu olan iletileri işler.Varsayılan olarak, SQL Server sorgular, ileti gövdelerini içeriyor ancak, tüm posta iletilerinin işler.

  • [ @filetype = ] 'filetype'
    Is the file extension to be used when the query result set is sent back to the message sender as an attachment.filetype is varchar(3), with a default of "'txt"'.

  • [ @separator = ] 'separator'
    Her sütun için sütun ayırıcı (alan ayırıcısı) iş sonuç kümesi.This information is passed to the xp_sendmail extended stored procedure to return the result set to the message sender.separator is varchar(3), with a default of 'tab', which is a special case for the tab character to be used between columns.

  • [ @set_user = ] 'user'
    Is the security context in which the query should be run.user is varchar(132), with a default of guest.

  • [ @dbuse = ] 'dbname'
    Is the database context in which the query should be run.dbname is varchar(132), with a default of master.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

None

Remarks

Incoming e-mail is expected to have a single valid SQL Server query as the message text.sp_processmail only handles unread messages.Sorgu sonuçlarını iletiyi gönderene geri ve BILGI üzerinde herhangi bir e-posta kullanıcılara kopyalanır: özgün iletinin listesi. Bunlar, iletileri işlendikten sonra gelen kutusundan silinir.Genellikle sunucu e-posta gönderilirse sp_processmail sık çalıştırılması gerekir.Için küme normal e-posta işlemeyi kullanabilirsiniz SQL Server Zamanlama Aracısı bir sp_processmail iş.Bu posta adresinde belirtilen sıklıkla işler ve bir bilgi iletisi, sorgu çalışma geçmiş işlenen sayısı ile kaydeder.

sonuçlar eklenmiş bir dosyayı gönderilir.Gönderilen tam dosya adı "numaraları ve belirtilen dosya türü uzantısını (örneğin Sql356.txt rasgele bir dize izleyen SQL" oluşur.

Important noteImportant Note:

Uygun simge posta iletisine eklemek için , dosya türü doğru şekilde ilişkili olduğundan emin olun.Bir dosya ilişkilendirmesi oluşturmak için , çift tıklatın. Bilgisayarım kendi masaüstü ve seçme hakkındaKlasör Seçenekleri from the Araçları menüsü.Üzerinde Dosya türleri sekmesiKlasör Seçenekleri iletişim kutusunda, dosyayı açmak için kullanılacak uygulama belirtin.

Farklı sp_processmail işleri olabilir küme sorgularda, farklı veritabanları için.Örneğin için sorgular ve kuralını benimsemesine AdventureWorksveritabanında bir "SQL:AdventureWorks" konusunu olmalıdır Then, you could run sp_processmail specifying a subject ofSQL:AdventureWorks and a dbname of AdventureWorks.Farklı bir veritabanı sorgularını ve gruplandırmaları diğer biçimlendirme yapıları olabilir.For example, distribution tasks can have a subject of SQL:distribution and a dbname ofdistribution.Bu zamanlanmış işleri olabilir SQL Server Agent.

The sp_processmail system saklı yordam can also be customized in many ways by retrieving the text of the procedure with the sp_helptext system saklı yordam, modifying the Transact-SQL code, and creating a new procedure with customized behavior.Olası bir değişiklik içerir:

  • Yalnızca kullanarak belirli özel ileti türlerini işleme @ türü parametresixp_findnextmsg genişletilmiş saklı yordam.

  • Ileti olarak işaretle read ancak iletiyi işlendikten sonra silin (yürütmek Xp_readmail ikinci kez ilepeek küme için false).

  • Sorgu sonuçlar çağırarak e-posta iletisinin gövdesinde gönderir. xp_sendmail with attach_result küme için falseve attachments Parametre.

  • Iletinin göndereni temel bir kullanıcı bağlamında sorguyu çalıştırmak için güvenlik bağlamı ayarlayın.If the e-mail user names are the same as your SQL Server user names, this is as simple as changing the call to xp_sendmail to use set_user = @originator.Yoksa, posta kullanıcı adları geçerli SQL Server (örneğin, bunlar Katıştırılmış boşluklar içeriyorsa), kullanıcı adları, uygun olarak almak için bir tablo arama veya karakter değiştirme yapabilirsiniz SQL Server Kullanıcı adı için geçirilecek xp_sendmail.

İzinler

Yalnızca üyeleri sysadmin sabit sunucu rolü, bu yordamı çalıştırabilirsiniz.

Örnekler

Aşağıdaki örnek, sorgularda olarak gelen tüm iletileri işler AdventureWorks Veritabanı. Sonuç kümesi istemciye döndürülen CSV (virgülle ayrılmış değerler) biçimi.

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