हमारे पास पुरानी विरासत एसक्यूएल 2000 सर्वर (खेत में अंतिम) है - हम इस सर्वर से छुटकारा पाने में असमर्थ रहे हैं क्योंकि यह मेलबॉक्स की निगरानी के लिए xp_findnextmsg
, xp_readmail
आदि का उपयोग करता है (मैपी के माध्यम से) और डेटाबेस में उस पते पर सभी ईमेल आयात करें। डेटाबेस में सरल टेबल होते हैं जो "से", "से", "विषय", "बॉडी", "प्रेषित तिथि" & स्टोर करते हैं।एडी मेलबॉक्स से ईमेल आयात करें
आपको बता दें कि, ऊपर procs अब उपयोग में एसक्यूएल में हैं 2005+
इस तालिका में उदाहरण ईमेल इस मेलबॉक्स के लिए स्वचालित रूप से हमारे हेल्पडेस्क सिस्टम के द्वारा उठाया जा सकता है के लिए आंतरिक प्रणालियों के दर्जनों, से पढ़ी जाती है & कॉल आदि बनाने
मेरा प्रश्न यह है: क्या यह एसक्यूएल 2008 + में ऐसा करने का सबसे आसान/आधुनिक तरीका है? क्या यह एक .NET बाइनरी/सेवा लिखने का मामला होगा जो मेलबॉक्स से कनेक्ट करने के लिए smtp या कुछ का उपयोग करेगा और डेटा को SQL में डालें या ऐसा करने का एक आसान तरीका है? (SSIS/3 पार्टी उपकरण/पूर्व मौजूदा कोड/परियोजनाओं?)
बस सोचा था कि मैं इससे पहले कि मैं कुछ लिख शुरू पूछना चाहते हैं - कोई मतलब पहिया फिर से खोज करने के रूप में यह थे।
पीएस: प्रश्न में मेलबॉक्स एक एक्सचेंज 2010 मेलबॉक्स है।
संपादित करें: यह कार्यक्षमता को फिर से शुरू किया जाना संकेत दिया था 2008 & dbmail में: http://connect.microsoft.com/SQLServer/feedback/details/126167/xp-readmail-replacement-for-sql-2005 लेकिन ऐसा लगता है यह अमल में लाना करने में विफल रहा लग रहा है!
संपादित 2: मैं बस एक सभ्य कोड नमूना है कि यहाँ 2007+ विदेशी मुद्रा में नई वेब सेवाओं का इस्तेमाल करता पाया है: - (? क्या कभी किसी ने एसक्यूएल और विनिमय वेब सेवाओं के साथ काम किया है) http://social.msdn.microsoft.com/forums/en-US/sqltools/thread/dd2b465b-b1d2-4c0d-82ec-c36c6c482d5d प्रगति में प्रयोग
संपादित 3: सभी कार्य पूर्ण! मैंने एक .net सेवा को खारिज कर दिया जो हमारे एक्सचेंज सर्वर पर बैठता है और मेलबॉक्स & पर निगरानी करता है SQL में कोई भी नया मेल धक्का देता है। दूसरों को एक समान प्रश्न है और शुरू करने के लिए कुछ नमूना कोड की आवश्यकता है - यहां कुछ मोटा कोड है (मेरी सेवा से कटा हुआ - आसान पढ़ने के लिए मूल गतिशील एसक्यूएल के साथ पैरामीटरयुक्त एसक्यूएल को प्रतिस्थापित किया गया है): (नोट: आपको ईडब्ल्यूएस एपीआई 1.1 की आवश्यकता होगी डीएल)
Imports Microsoft.Exchange.WebServices.Data
Dim ExchangeUrl As String = "https://DOMAIN.co.uk/ews/exchange.asmx"
Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP1)
service.Url = New Uri(ExchangeUrl)
service.Credentials = New WebCredentials("[email protected]", "PASSWORD")
Dim findResults As FindItemsResults(Of Item) = service.FindItems(WellKnownFolderName.Inbox, New ItemView(1000))
If findResults.Count > 0 Then
service.LoadPropertiesForItems(findResults.Items, New PropertySet(BasePropertySet.FirstClassProperties))
End If
For Each item As Item In findResults.Items
Dim CurrentEmail As EmailMessage = item
'#### Grab Email Information
E_ID = CurrentEmail.InternetMessageId.ToString()
If CurrentEmail.Sender.Address.ToString() <> "" Then
E_From = Replace(CurrentEmail.Sender.Address, "'", "''")
Else
E_From = Replace(CurrentEmail.Sender.Name, "'", "''")
End If
E_From = Replace(CurrentEmail.Sender.Address, "'", "''")
E_To = Replace(CurrentEmail.DisplayTo, "'", "''")
E_CC = Replace(CurrentEmail.DisplayCc, "'", "''")
E_Subject = Replace(CurrentEmail.Subject, "'", "''")
E_Body = Replace(CurrentEmail.Body.Text, "'", "''")
E_Received = CurrentEmail.DateTimeReceived.ToString("dd/MM/yyyy HH:mm:ss")
E_Sent = CurrentEmail.DateTimeSent.ToString("dd/MM/yyyy HH:mm:ss")
'#### Save the email into SQL
If SqlQuery("INSERT INTO tbl_Emails ([MessageID], [From], [To], [CC], [Subject], [Body], [Received], [Sent]) VALUES ('" & E_ID & "', '" & E_From & "', '" & E_To & "', '" & E_CC & "', '" & E_Subject & "', '" & E_Body & "', CONVERT(DATETIME, '" & E_Received & "', 103), CONVERT(DATETIME, '" & E_Sent & "', 103))") = True Then
item.Delete(DeleteMode.HardDelete)
End If
Next
खुशी है कि सब कुछ आप के लिए बाहर काम किया। आपको संपादन 3 को एक उत्तर में ले जाना चाहिए ताकि लोग इसे वोट दे सकें :-) – EBarr