2009-12-13 18 views
5

मैंने ऐप.कॉन्फिग में मेल सेटिंग्स डाल दी हैं और सफलतापूर्वक उन्हें मेलसेटिंगसेक्शन ग्रुप ऑब्जेक्ट में खींच सकते हैं। हालांकि, मुझे यकीन नहीं है कि इन सेटिंग्स का उपयोग करके संदेश कैसे भेजा जाए।एपी.कॉन्फिग फ़ाइल में एसएमटीपी मेल क्लाइंट सेटिंग्स सी #

यह वही है मैं अब तक है:

System.Configuration.Configuration config =  
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

MailSettingsSectionGroup mailSettings = 
config.GetSectionGroup("system.net/mailSettings") as 
System.Net.Configuration.MailSettingsSectionGroup; 

क्या मैं का उपयोग करने के mailSettings आपत्ति आगे क्या करना होगा?

उत्तर

14

System.Net.Mail.SmtpClient

विशेष रूप से, Send(...) विधि। SmtpClientस्वचालित रूप से आपके ऐप/web.config फ़ाइल से विवरण खींचें। कॉन्फ़िगरेशन का उपयोग करने के लिए आपको कुछ भी करने की आवश्यकता नहीं है, यह सब स्वचालित रूप से संभाला जाता है। एसएमटीपी जोड़ने के लिए

संपादित Web.Config उदाहरण:

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
      <network host="yoursmtpserver.com" /> 
     </smtp> 
    </mailSettings> 
</system.net> 
+0

क्या आप कृपया एक उदाहरण web.config फ़ाइल प्रदान कर सकते हैं या स्कीमा निर्दिष्ट करेंगे कि SmtpClient पढ़ेगा? –

+0

कैसे 'से' स्वचालित रूप से खींचा जाता है? – mynkow

+0

इसलिए मैं "से" में एक पता निर्दिष्ट करता हूं लेकिन जब मैं कोड में एक और पता का उपयोग करता हूं तो कोड में पता कॉन्फ़िगरेशन से एक को ओवरराइट करता है। और यदि मैं कोड (शून्य, खाली स्ट्रिंग) में कुछ भी निर्दिष्ट नहीं करता हूं तो एक त्रुटि फेंक दी जाती है। – Greg

2

मैं एक कस्टम वर्ग है:

using System; 
    using System.Configuration; 
    using System.Net; 
    using System.Net.Configuration; 
    using System.Net.Mail; 

    namespace MyNameSpace 
    { 
     internal static class SMTPMailer 
     { 
      public static void SendMail(string to, string subject, string body) 
      { 
       Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
       var mailSettings = oConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup; 

       if (mailSettings != null) 
       { 
        int port = mailSettings.Smtp.Network.Port; 
        string from = mailSettings.Smtp.From; 
        string host = mailSettings.Smtp.Network.Host; 
        string pwd = mailSettings.Smtp.Network.Password; 
        string uid = mailSettings.Smtp.Network.UserName; 

        var message = new MailMessage 
         { 
          From = new MailAddress(@from) 
         }; 
        message.To.Add(new MailAddress(to)); 
        message.CC.Add(new MailAddress(from)); 
        message.Subject = subject; 
        message.IsBodyHtml = true; 
        message.Body = body; 

        var client = new SmtpClient 
         { 
          Host = host, 
          Port = port, 
          Credentials = new NetworkCredential(uid, pwd), 
          EnableSsl = true 
         }; 

        try 
        { 
         client.Send(message); 
        } 
        catch (Exception ex) 
        { 
        } 
       } 
      } 
     } 
    } 

और ये मेरे app.conf फ़ाइल से ठीक खींचती है।

संबंधित मुद्दे