2012-10-30 11 views
5

मैं ईमेल भेजने के लिए संपर्क फार्म बनाने के लिए कोशिश कर रहा हूँ (from और to यूजर इंटरफेस से हो जाएगा):कैसे संपर्क फार्म के लिए सी # asp.net द्वारा मेल भेजने की

try { 
    MailMessage mail = new MailMessage(); 
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
    mail.From = new MailAddress("fromadd"); 
    mail.To.Add("toadd"); 
    mail.Subject = "Test Mail"; 
    mail.Body = "This is for testing SMTP mail from GMAIL"; 
    SmtpServer.Port = 587; 
    SmtpServer.Credentials = new System.Net.NetworkCredential("username","password"); 
    SmtpServer.EnableSsl = true; 

    SmtpServer.Send(mail); 
    MessageBox.Show("mail Send"); 
} 
catch (Exception ex) { 
    MessageBox.Show(ex.ToString()); 
} 

यह केवल Gmail के लिए काम करता है - लेकिन , मैं इसे किसी भी ईमेल प्रदाता के लिए काम करना चाहता हूं - मैं इसके बारे में कैसे जाऊं?

+1

क्या आप मतलब है 'सामान्य code'? जीमेल के लिए विशेष रूप से होने वाली एकमात्र चीज एसएमटीपी मान और * संभवतः * बंदरगाह है। – Arran

+1

क्यों न केवल पोर्ट और होस्ट को इस फ़ंक्शन के पैरामीटर के रूप में पास करते हैं? – Blachshma

+0

इसका मतलब है कि मुझे से - याहू आईडी और टू - जीमेल आईडी टाइप करना है .. जेनेरिक – user1785946

उत्तर

1

smtp-सर्वर से कनेक्शन के लिए हार्डकोडेड मानकों का प्रयोग न करें।

इसके बजाय webconfig का उपयोग करें। आपका कार्यक्रम अधिक "सामान्य" होगा। बस config बदल जब आप किसी अन्य smtp सर्वर के माध्यम से भेजने के लिए

2

आप web.config में SmtpClient कॉन्फ़िगर करना चाहिए हैं:

<configuration> 
    <system.net> 
    <mailSettings> 
     <smtp deliveryMethod="network"> 
     <network 
      host="localhost" 
      port="25" 
      defaultCredentials="true" 
     /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
</configuration> 

फिर अपने कोड में आप कर सकते हैं:

try 
    { 
     MailMessage mail = new MailMessage(); 
     mail.From = new MailAddress("fromadd"); 
     mail.To.Add("toadd"); 
     mail.Subject = "Test Mail"; 
     mail.Body = "This is for testing SMTP mail from GMAIL"; 

     SmtpClient SmtpServer = new SmtpClient();    
     SmtpServer.Send(mail); 
     MessageBox.Show("mail Send"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
+0

जहां मुझे smtp क्लाइंट – user1785946

0

मेरे लिए यह एकमात्र चीज की तरह दिखता है जो आपको किसी भी ईमेल सर्वर का उपयोग करके ईमेल भेजने से रोक सकता है यह तथ्य है कि कुछ मेल सर्वर को प्रमाणीकरण (या संभवतः एक वैकल्पिक पोर्ट नंबर) की आवश्यकता होती है।

यहाँ बुनियादी कोड का एक सा है कि आप सही दिशा

public class SendMail 
{ 

    public SendMail(string SMTPServer, string fromEmail) 
    { 
     this.SMTPServer = SMTPServer; 
     this.FromEmail = fromEmail; 
    } 

    public SendMail(string SMTPServer, string fromEmail, string Username, string Password) : this(SMTPServer, fromEmail) 
    { 
     this.Username = Username; 
     this.Password = Password; 
    } 

    public string SMTPServer { get; set; } 
    public string FromEmail { get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 

    public void Send(string toEmail, string subject, string data) 
    { 
     MailMessage mailMsg = new MailMessage(); 
     mailMsg.To.Add(toEmail); 

     MailAddress mailAddress = new MailAddress(this.FromEmail); 

     mailMsg.From = mailAddress; 

     mailMsg.Subject = subject; 
     mailMsg.Body = data; 
     mailMsg.IsBodyHtml = true; 
     SmtpClient smtpClient = new SmtpClient(this.SMTPServer, 25); 

     if (this.Username.Length > 0 && this.Password.Length > 0) 
     { 
      System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(this.Username, this.Password); 
      smtpClient.Credentials = credentials; 
     } 

     smtpClient.Send(mailMsg); 
    } 

} 
0

मैं इस कोड कोशिश कर रहा हूँ में बताया मिलना चाहिए है।

try 
{ 
    MailMessage mail = new MailMessage(); 
    mail.From = new MailAddress("[email protected]"); 
    mail.To.Add("[email protected]"); 
    mail.Subject = "Accept Request"; 
    mail.Body = body; 
    mail.IsBodyHtml = true; 
    SmtpClient smtp = new SmtpClient("smtp.gmail.com"); 
    smtp.Credentials = new System.Net.NetworkCredential("[email protected]", " password"); 
    smtp.EnableSsl = true; 
    smtp.UseDefaultCredentials = true; 
    smtp.Send(mail); 
} 
catch (Exception ex) 
{ 
    ViewData.ModelState.AddModelError("_FORM", ex.ToString()); 
} 
1

तुम भी कोशिश कर सकते हैं:

MailMessage msgObj = new MailMessage(); 

    msgObj.To = "[email protected]"; 
    msgObj.From = "Mike"; 
    msgObj.Bcc = "[email protected]"; 
    msgObj.Subject = "Test Message"; 
    msgObj.Body = "Hello World!"; 
    SmtpMail.SmtpServer = "Your Server"; 
    SmtpMail.Send("FromEmail", "ToEmail", "Subject", "Query"); 
    SmtpMail.Send(msgObj); 
+0

मिल सकता है, इसे एक फ़ंक्शन में रखें और आप तैयार हैं। – semicolon

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