Share via


sp_processmail (Transact-SQL)

Genişletilmiş saklı yordamları kullanır (xp_findnextmsg, xp_readmail, ve xp_deletemail) için Gelen Kutusu'ndan gelen posta iletilerini işlemek için Microsoft SQL Server.Her ileti, ileti gövdesinde tek bir sorgu içermesi beklenmektedir.Bu yordamı kullanır xp_sendmail sonuç kümesi iletiyi gönderenin eki olarak geri dönmek içingenişletilmiş saklı yordam .

Önemli notÖnemli

Bu yordamı kullanmayın.Sp_processmail yordam size mail tarafından bilinmeyen bir kaynaktan gönderilen bilgileri işler ve kendi ortamına kötü amaçlı kod için kullanılabilir.Yürütmeden önce kodu doğrulamak için çok dikkatli olması gerekir.Bu yordam, geriye doğru uyumluluk için eklenmiştir, ancak SQL Mail etkinleştirene kadar yüklü değil.

Not

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ Konu = ] 'konu'
    Sorgu için postaları olarak yorumlamak için posta iletilerinin konu satırında olduğu SQL Server işlem. subject olan varchar(255), varsayılan değer null.Belirtildiğinde, sp_processmail Bu konu olan iletileri işler.Varsayılan olarak, SQL Server tüm posta iletilerinin işler gibi rağmen kendi ileti gövdelerini içeren sorgular.

  • [ @ FileType = ] 'dosyatürü'
    sonuç kümesi ek olarak ileti gönderene geri gönderildiğinde kullanılacak dosya uzantısıdır.filetypeİş varchar(3), varsayılan değer "'txt"'.

  • [ ayırıcı = ] 'ayırıcı'
    Her sütun sonuç kümesiiçin sütun ayırıcı (alan sonlandırıcı) dir.Bu bilgiler için geçirilen xp_sendmailileti gönderene iade sonuç kümesi içingenişletilmiş saklı yordam . separatorİş varchar(3), 'sekmesindeki' varsayılan sütunlar arasında kullanılacak sekme karakteri için özel bir durum .

  • [ @ set_user = ] 'kullanıcı'
    Sorgunun çalıştırılması gereken güvenlik bağlamını olur.userİş varchar(132), varsayılan değer guest.

  • [ @ dbuse = ] 'dbname'
    Sorgunun çalıştırılması gereken veritabanı bağlamdır.dbname İş varchar(132), varsayılan değer ana.

Dönüş Kodu Değerleri

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

Sonuç Kümeleri

Hiçbiri

Açıklamalar

Gelen e-posta, tek geçerli olması beklenir SQL Server sorgu olarak ileti metni.sp_processmail yalnızca okunmamış iletileri işler.Sorgu sonuçlar ileti gönderene geri ve cc üzerindeki herhangi bir e-posta kullanıcılarının kopyalanır: özgün ileti listesi.İletileri işlendikten sonra bunlar gelen kutusundan silinir.E-posta sunucusuna, genellikle gönderilirse sp_processmail sık çalıştırılmalıdır.Kullanabileceğiniz küme için normal e-posta işleme, SQL Server Zamanlama Aracısı bir sp_processmail iş.Bu posta adresinde belirtilen sıklıkla işler ve iş geçmişişlenen sorgu sayısı olan bilgilendirici bir ileti kaydeder.

Sonuç eklenmiş dosya gönderilir.Gönderilen tam dosya adı "Sql" oluşur. bir rasgele dize sayı ve belirtilen dosya türü uzantısı, örneğin, Sql356.txt gelecek.

Önemli notÖnemli

Uygun simge posta iletisine eklemek için dosya türü doğru ilişkili olduğundan emin olun.Dosya ilişkilendirmesi oluşturmak için çift Bilgisayarım Masaüstü ve seçin Klasör Seçenekleri dan araçları menü.Üzerinde Dosya türleri sekmesini Klasör Seçenekleri iletişim kutusunda, dosyayı açmak için kullanılacak uygulamayı belirtin.

Farklı sp_processmail işleri farklı veritabanlarında sorguları için küme olabilir.Örneğin için sorgular kuralı Birliği AdventureWorks2008R2 veritabanı, bir konu olması gerekir "SQL: AdventureWorks." Daha sonra çalıştırabilir sp_processmail belirten bir subject ,* SQL: AdventureWorks ve bir dbname , AdventureWorks2008R2.Farklı veritabanı sorguları ve gruplandırmaları diğer biçimlendirme yapıları olabilir.Örneğin, dağıtım görevleri olabilir bir subject , SQL: dağıtım ve bir dbname , *dağıtım.Bu zamanlanmış işlerle olabilir SQL Server Aracısı.

Sp_processmail saklı yordam sistem özelleştirilmiş pek çok şekilde yordama metnini alarak sp_helptext Transact -SQL kodunu değiştirerek ve özelleştirilmiş davranışı ile yeni bir yordam oluşturma sistem saklı yordam.Olası değişiklikler şunlardır:

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

  • İletiyi olarak işaretlemek read , ancak iletiyi işlendikten sonra silmeyin (yürütmek xp_readmail ile ikinci saat peek küme false).

  • Sorgu sonuçlar e-posta iletisinin gövdesinde çağırarak göndermek xp_sendmail ile attach_result küme falseve kaldırma attachments parametresi.

  • İletiyi gönderenin dayalı bir kullanıcı bağlamında sorguyu çalıştırmak için güvenlik bağlamı ayarlayın.E-posta kullanıcı adları aynı ise, SQL Server kullanıcı adları, bu değiştirme çağrısına kadar basit xp_sendmail kullanmak için set_user = @ gönderen.Posta kullanıcı adları geçerli değilse, SQL Server kullanıcı adları (örneğin, katıştırılmış boşluklar içerenleri), uygun almak için tablo arama veya karakter eşleme yapabilirsiniz SQL Server geçirmek için kullanıcı adına xp_sendmail.

İzinler

Yalnızca üyeleri sysadmin sabit sunucu rolü için yürütmek bu yordamı.

Örnekler

Aşağıdaki örnek sorguları olarak gelen tüm iletileri işler AdventureWorks2008R2 veritabanı.Sonuç kümeleri istemci döndürülen CSV (virgülle ayrılmış değerler) biçimi.

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