2013-09-24 6 views
7

यह आपके लिए बहुत छोटा हो सकता है लेकिन मुझे पता नहीं लगा कि मुझे अपना कोड चलाने पर यह त्रुटि संदेश क्यों मिल रहा है। मैंने इस वेबसाइट पर Sending email through Gmail SMTP server with C# के लिए कुछ सापेक्ष प्रश्नों को देखा लेकिन उनमें से कोई भी सहायक नहीं था। कृपया मदद करने के लिए तैयार कोई भी? विभिन्न असेंबली का उपयोग कर भी स्वीकार्य हैं। इसलिए अगर किसी को एक समाधान समाधान मिल गया है जिसकी सराहना की जाएगी।एक एसएमटीपी क्लाइंट के माध्यम से ईमेल भेजने में त्रुटि

त्रुटि संदेश = एसएमटीपी सर्वर को एक सुरक्षित कनेक्शन की आवश्यकता है या ग्राहक प्रमाणीकृत नहीं है। सर्वर प्रतिक्रिया थी: 5.5.1 प्रमाणीकरण आवश्यक है। यहां अधिक जानें

यहाँ मेरी कोड

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();  
message.From = new MailAddress("[email protected]"); 
message.To.Add("[email protected]"); 
message.Subject = "Hello"; 
message.Body = "Hello Bob "; 
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 

SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
smtpClient.EnableSsl = true; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Credentials = new NetworkCredential("MyGoogleMailAccount", 
               "mygooglemailpassword"); 

smtpClient.Send(message.From.ToString(), message.To.ToString(), 
       message.Subject, message.Body); 
+1

= हॉटमेल से? – Steve

+0

डुप्लिकेट http://stackoverflow.com/questions/704636/sending-email-through-gmail-smtp-server-with-c-sharp – Pete

+1

संयोग से, यदि आप पते से हॉटमेल का उपयोग करते हैं तो जीमेल शायद शिकायत करेगा। – Pete

उत्तर

10

मैं वहाँ कुछ भी ई-मेल पते के अलावा अन्य अपने कोड के साथ गलत क्या है नहीं लगता। मैंने इस कोड का उपयोग जीमेल से अपने व्यक्तिगत खाते में सफलतापूर्वक ई-मेल भेजने के लिए किया था (इसे वास्तव में LINQPad में चलाया गया था)। बस अपने खातों के वैध मानों के साथ 3 स्ट्रिंग मानों को प्रतिस्थापित करें और आपको जाने के लिए अच्छा होना चाहिए:

MailMessage message = new System.Net.Mail.MailMessage(); 
string fromEmail = "[email protected]"; 
string fromPW = "mypw"; 
string toEmail = "[email protected]"; 
message.From = new MailAddress(fromEmail); 
message.To.Add(toEmail); 
message.Subject = "Hello"; 
message.Body = "Hello Bob "; 
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 

using(SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587)) 
{ 
    smtpClient.EnableSsl = true; 
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtpClient.UseDefaultCredentials = false; 
    smtpClient.Credentials = new NetworkCredential(fromEmail, fromPW); 

    smtpClient.Send(message.From.ToString(), message.To.ToString(), 
        message.Subject, message.Body); 
} 
+0

हाय पीट। मुझे लगता है कि यह कुछ फ़ायरवॉल मुद्दों या मेरे googlemail उपयोगकर्ता नाम और पासवर्ड से कुछ करने के लिए हो सकता है। – Sike12

+0

क्या आप वाकई इसका उपयोग कर रहे हैं सही खाता और पासवर्ड? मुझे लगता है कि अगर आपको फ़ायरवॉल द्वारा अवरुद्ध किया गया तो आपको प्रतिक्रिया वापस नहीं मिलेगी। – Pete

+0

इसके बजाय पोर्ट 465 का उपयोग करने का प्रयास करें। – Pete

0

है के द्वारा this post.

MailMessage mail = new MailMessage("[email protected]", "[email protected]"); 
SmtpClient client = new SmtpClient(); 
client.Port = 25; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = false; 
client.Host = "smtp.google.com"; 
mail.Subject = "this is a test email."; 
mail.Body = "this is my test email body"; 
client.Send(mail); 
+4

के अनुसार प्रश्न को संशोधित करूंगा, यह एक त्रुटि संदेश की रिपोर्ट करेगा "{" रिमोट नाम को हल नहीं किया जा सका: 'smtp.google.com' "} – Sike12

+0

यदि आप इसे smtp.gmail.com में बदलते हैं (googlemail प्रमाण-पत्रों के साथ) या smtp.live.com (हॉटमेल क्रेडेंशियल के साथ) तो यह ठीक काम करेगा :) – Sike12

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

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