2009-09-01 17 views
6

के माध्यम से एएसपी.NET में ईमेल नहीं भेज सकता है मेरे पास गोडाडी पर होस्ट किया गया एक एएसपी.NET एप्लिकेशन है जिसे मैं ईमेल भेजना चाहता हूं। जब यह चलता है, तो मुझे मिलता है: मेलबॉक्स नाम की अनुमति नहीं है। सर्वर प्रतिक्रिया थी: क्षमा करें, रिलेइंग आपके स्थान से इनकार कर दिया। कोड और Web.config के महत्वपूर्ण भागों में नीचे हैं:गोडाडी सर्वर

msg = new MailMessage("[email protected]", email); 
     msg.Subject = "GreekTools Registration"; 
     msg.Body = 
      "You have been invited by your organization to register for the GreekTools recruitment application.<br/><br/>" + 
      url + "<br/><br/>" + 
      "Sincerely,<br/>" + 
      "The GreekTools Team"; 

     msg.IsBodyHtml = true; 

     client = new SmtpClient(); 
     client.Host = "relay-hosting.secureserver.net"; 

     client.Send(msg); 

<system.net> 
<mailSettings> 
    <smtp from="[email protected]"> 
    <network host="relay-hosting.secureserver.net" port="25" userName="********" password="*********" /> 
    </smtp> 
</mailSettings> 

उत्तर

17

1- यदि आपकी साइट गोडाडी पर होस्ट की गई है तो आप क्रेडेंशियल्स के बिना "relay-hosting.secureserver.net" का उपयोग कर सकते हैं।

2- यदि आपकी साइट गोडाडी के बाहर होस्ट की गई है तो आप ईमेल खाता प्रमाण-पत्र के साथ "smtpout.secureserver.net" का उपयोग कर सकते हैं।

पुनश्च: कृपया पोर्ट 3535 यदि आप 25

GoDaddy

<system.net> 
     <mailSettings> 
     <smtp from="[email protected]et"> 
     <network host="relay-hosting.secureserver.net"/> 
     </smtp> 
     </mailSettings> 
    </system.net> 

बाहरी

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="smtpout.secureserver.net" 
      userName="[email protected]" password="your_password_here" 
      port="25" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
+0

'smaypclient.Host' के रूप में' relay-hosting.secureserver.net' का उपयोग करते समय मुझे समस्याएं थीं। कभी-कभी इसे भेजने में काफी समय लगता है, और अन्य इसे अपवाद फेंकने पर भेज देंगे: "मेलबॉक्स नाम की अनुमति नहीं है। सर्वर प्रतिक्रिया थी: क्षमा करें, आपके स्थान से रिलेइंग अस्वीकार कर दिया गया"। मेरे मेजबान को 'smptout.secureserver.net' में बदलकर इस समस्या को हल किया गया है और मेल को सेकंड में भेजा जा सकता है। बहुत बहुत धन्यवाद: डी +1 –

+0

गोडाडी ने अपने ईमेल बुनियादी ढांचे के साथ कुछ बदलाव किए। आप अलग-अलग डेटा केंद्रों में अपना ईमेल खाता बना सकते हैं। तो आप अमेरिका, यूरोप या एशिया सर्वर चुन सकते हैं। इसी कारण से आपको अपने क्षेत्र के लिए एक smtp सर्वर का उपयोग करने की आवश्यकता है। जैसे "smtpout.europe.secureserver.net" –

+0

मेरी समस्या पोर्ट 25 थी। पोर्ट 3535 का सुझाव देने के लिए बहुत बहुत धन्यवाद। एक आकर्षण की तरह काम किया! – curiousBoy

0

क्योंकि मशीन ईमेल भेजने के लिए प्रयास करने से श्वेत सूची में नहीं किया गया है यह संभावना एसएमटीपी सर्वर से जवाब है (या के लिए ब्लैकलिस्ट किया गया है स्पैम)। एक goDaddy सर्वर relay-hosting.secureserver.net है, या यह एक अलग नेटवर्क पर है? आप एक गोडाडी सर्वर खोजना चाहेंगे जो ईमेल को रिले करने में सक्षम बनाता है। मुझे लगता है कि बहुत से साझा होस्टिंग प्रदाताओं के पास आज प्रतिबंध हैं।

मुझे पता चल जाएगा कि आप किस प्रकार का एसएमटीपी सर्वर उपयोग कर रहे हैं और एंटी-स्पैम उपाय क्या हैं। व्यवस्थापक स्वीकृत होस्ट की श्वेतसूची में GoDaddy सर्वर को जोड़ने में सक्षम हो सकता है। आपको बहुत सावधान रहना होगा और यह सुनिश्चित करना होगा कि एप्लिकेशन को स्पैमर के लिए प्रॉक्सी के रूप में उपयोग नहीं किया जा सके। यह सुनिश्चित करने के लिए सभी इनपुट को प्रमाणित करना सुनिश्चित करें कि यह सुरक्षित है।

+0

relay-hosting.secureserver.net गोडाडी के एसएमटीपी रिले सर्वर है। – Jared

0

अपना होस्टनाम देखें। क्या आप वाकई आपके अकाउंट mail.greektools.net का उपयोग करने के लिए कॉन्फ़िगर नहीं है? यही कारण है कि GoDaddy वेब होस्टिंग के लिए डिफ़ॉल्ट प्रारूप है ..

+0

मैंने इसे mail.greektools.net में बदलने की कोशिश की और मुझे एक सामान्य "भेजने में विफलता" अपवाद मिला (या ऐसा कुछ)। – Jared

0

अपने नेटवर्क तत्व में

defaultCredentials="false" 

सेट

 <network host="relay-hosting.secureserver.net" port="25" userName="********" password="*********" defaultCredentials="false" /> 
0

बस एक परीक्षण के लिए। Web.config से उपयोगकर्ता नाम और पासवर्ड मान हटाएं।

फिर, अपने कोड में

//call this line, before you call .Send 
client.Credentials = CredentialCache.DefaultNetworkCredentials; 
client.Send(msg) 
0

मैं सिर्फ GoDaddy से पूछा, कैसे, एक एसएमटीपी प्रपत्र मेलर स्थापित करने के लिए निर्धारित किया है और उन्होंने मुझसे कहा कि मैं कोई उपयोगकर्ता नाम से रिले सर्वर का उपयोग करने के, आवश्यकता होगी, कोई पासवर्ड नहीं, और कोई पोर्ट नहीं। उपयोग करने के लिए सर्वर नाम, वही नाम था जिसका आपने उपयोग किया था।

public class Email 
{ 
    public enum MailAddressType 
    { 
     From = 1, 
     Bcc 
    } 

    private static MailAddress _from = null; 

    public static void SendEmail(string to, string subject, string body) 
    { 
     SendEmail(to, subject, body, From, string.Empty); 
    } 

    public static void SendEmail(string to, string subject, string body, string from) 
    { 
     SendEmail(to, subject, body, from, MailAddressType.From); 
    } 

    public static void SendEmail(string to, string subject, string body, string addresses, MailAddressType addressType) 
    { 
     MailAddress from = From; 
     string bcc = string.Empty; 

     if (MailAddressType.From == addressType) 
     { 
      from = new MailAddress(addresses); 
     } 
     else 
     { 
      bcc = addresses; 
     } 

     SendEmail(to, subject, body, from, bcc); 
    } 

    private static void SendEmail(string to, string subject, string body, MailAddress from, string bcc) 
    { 
     MailMessage message = new MailMessage(); 
     message.From = From; 
     message.To.Add(to); 
     if (!string.IsNullOrEmpty(bcc)) 
     { 
      message.Bcc.Add(bcc); 
     } 
     message.ReplyTo = from; 
     message.Subject = subject; 
     message.Body = HttpContext.Current.Server.HtmlEncode(body); 
     SmtpClient smtp = new SmtpClient(); 
     smtp.Send(message); 
    } 

    public static MailAddress From 
    { 
     get 
     { 
      if (null == _from) 
      { 
       SmtpSection section = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp"); 
       string address = section.From; 
       string displayName = ConfigurationManager.AppSettings["fromEmailDisplayName"]; 
       _from = new MailAddress(address, displayName); 
      } 
      return _from; 
     } 
    } 
} 

और यहाँ हैं संबंधित web.config सेटिंग्स:

2

यहाँ मेरा ईमेल वर्ग है

<appSettings> 
    <add key="fromEmailDisplayName" value="Firstname Lastname"/> 
</appSettings> 

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
      <network host="relay-hosting.secureserver.net" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

मेरे लिए, कुंजी और "संदेश" से message.From = "था। ReplyTo = से "। लगता है कि गोडाडी संदेश को आपके डोमेन के पते से आना चाहता है। तो संपर्क पृष्ठों के लिए, अपने डिफ़ॉल्ट ईमेल पते का उपयोग करें और प्रेषक को ReplyTo के रूप में सेट करें। उसके बाद ईमेल ठीक से चला जाता है।

0
var message = new MailMessage(); 
message.To.Add(new MailAddress("email-address")); 
message.From = new MailAddress("email-address"); 
message.Subject = "subject"; 
message.Body = string.Format("message-body"); 
message.IsBodyHtml = true; 
using (var smtp = new SmtpClient()) 
{ 
    smtp.Host = "relay-hosting.secureserver.net"; 
    smtp.EnableSsl = false; 
    smtp.Credentials = CredentialCache.DefaultNetworkCredentials; 
    await smtp.SendMailAsync(message); 
} 
0

जो लोग पता है कि होना चाहिए चाहते से होस्ट की गई समस्याएं आ रही हैं बदल स्वीकृत उत्तर के अलावा सी # कोड, कोड के नीचे मेरे लिए काम किया। कृपया ध्यान दें कि स्वीकृत उत्तर में web.config में "से" पता पहले ही उल्लेख किया गया है, इसलिए इसे C# कोड में उल्लेख करने की आवश्यकता नहीं है।

public static void SendMail(string emailid, string subject, string body) 
    { 
     System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 

     System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 

     msg.To.Add(new MailAddress(emailid)); 

     msg.Subject = subject; 
     msg.IsBodyHtml = true; 
     msg.Body = body; 

     client.Send(msg); 
    }