2009-07-03 19 views
9

में ईमेल भेजना मुझे यह जानने की ज़रूरत है कि मेरे शेयरपॉइंट वेबपर्ट्स और/या अनुकूलित सुविधाओं से ईमेल भेजने के लिए सबसे अच्छा अभ्यास क्या है।शेयरपॉइंट

क्या मुझे ईमेल भेजने के लिए सामान्य .Net कक्षाओं का उपयोग करना चाहिए? या एक दृष्टिकोण सर्वर के साथ एकीकरण के माध्यम से ऐसा करने का उनका एक बेहतर तरीका है?

उत्तर

16

आसान तरीका है, इस तो मेल सर्वर setttings सेटअप केंद्रीय व्यवस्थापक में

using Microsoft.SharePoint.Utilities; 
SPUtility.SendEmail(SPContext.Current.Web, false, false, 
    "[email protected]", "subject", 
    "body"); 
+1

यह सीए व्यवस्थापक में निर्दिष्ट पते से उपयोग करता है के साथ अधिभार का उपयोग कर। यदि आप पते से कस्टम चाहते हैं, तो सामान्य .net कक्षाओं के साथ जाएं। – ArjanP

1

यूनिवर्सल तरीका किसी भी संदर्भ (जहां SPWeb उपलब्ध नहीं) OutboundMailService पढ़ा जाता है में ईमेल भेजने के लिए प्रयोग करेंगे उपयोगिताएँ में बनाया का उपयोग करने के लिए है सेटिंग्स जो SPUtility में उपयोग की जाती है। फिर मैन्युअल रूप से SmtpClient बनाएं:

var adminApp = SPAdministrationWebApplication.Local; 
var instance = adminApp.OutboundMailServiceInstance; 

var server = instance.Server.Address; 
var defaultFrom = adminApp.OutboundMailSenderAddress; 

var client = new SmtpClient(); 
client.Host = server; 
message.From = new MailAddress(defaultFrom); 
... 
0

आप डायनामिक मेल आईडी के लिए भी इस कोड का उपयोग कर सकते हैं। यह कोड उपयोगकर्ता के अनुसार मेल प्राप्त करता है। मैंने सूचियों से ईमेल सामग्री के लिए डेटा प्राप्त करने के लिए सीएएमएल क्वेरी का उपयोग किया है।

SPUser AssigUser = oWeb.EnsureUser(Assigned_Username); 
SPQuery mquery = new SPQuery(); 
mquery.Query = @"<Where><Eq><FieldRef Name='Email_x0020_Type' /> 
        <Value Type='Text'>Review - Ready for Review</Value> 
       </Eq></Where>"; 
string Emailsub = ""; 
string Emailbody = ""; 
SPList mList = oWeb.Lists["Email Content"]; 
SPListItemCollection itemcollection = mList.GetItems(mquery); 
foreach (SPListItem item in itemcollection) 
{ 
    Emailsub = item["Email Subject"].ToString(); 
    Emailbody = item["Email Content"].ToString(); 
    SPUtility.SendEmail(oWeb, false, false, AssigUser.Email, Emailsub, 
         Emailbody + "</br>" + oWeb.Url); 
    break; 
} 
+0

क्या आप समझ सकते हैं कि यह कोड कब उपयोगी है? यह बहुत विशिष्ट लगता है, और वास्तव में स्वीकार किए गए उत्तर में कुछ भी नहीं जोड़ता है। बेशक आप किसी सूची या वर्तमान उपयोगकर्ता से पैरामीटर प्राप्त कर सकते हैं ... हो सकता है कि मैं यहां बिंदु खो रहा हूं। – Kobi

+0

ईमेल की सामग्री एक अलग सूची में संग्रहीत है और इस कैमल क्वेरी का उपयोग करके सामग्री प्राप्त की जा सकती है और ईमेल के लिए उपयोग की जा सकती है। –

0

StringDictionary तर्क (source)

StringDictionary headers = new StringDictionary();        
    headers.Add("to", currCtxt.Web.CurrentUser.Email); 
    headers.Add("cc", "[email protected]"); 
    headers.Add("bcc", ""); 
    headers.Add("from", "[email protected]"); 
    headers.Add("subject", "Email Subject"); 
    headers.Add("content-type", "text/html"); 
    string bodyText = "Hello how are you?"; 
    SPUtility.SendEmail(currCtxt.Web, headers, bodyText.ToString()); 
संबंधित मुद्दे