2009-03-31 13 views
8

जो मैं समझता हूं उससे Vista पर आईआईएस में कोई एसएमटीपी सर्वर नहीं है। मैं एक परियोजना पर काम कर रहा हूं जिसके लिए मुझे ईमेल भेजने की आवश्यकता होगी। मैं अपने विकास बॉक्स पर कुछ सरल प्रोटोटाइप शुरू करना चाहता हूं जो Vista Ultimate चला रहा है। मैं एक कॉर्पोरेट नेटवर्क से जुड़ा नहीं हूं जहां मैं किसी एक्सचेंज सर्वर का उपयोग कर सकता हूं।मैं Vista पर smtp कैसे स्थापित करूं ताकि मैं System.Net.Mail का उपयोग कर सकूं?

मुझे एहसास है कि कई SMTP सर्वर हैं जिन्हें मैं इंस्टॉल कर सकता हूं, लेकिन मुझे यकीन नहीं है कि एक बार इंस्टॉल करने के बाद मुझे क्या करना है। मुझे पता है कि ईमेल भेजने के लिए कोड कैसे लिखना है, लेकिन मुझे नहीं पता कि smtp सर्वर का उपयोग करने के लिए किस प्रकार की कॉन्फ़िगरेशन की आवश्यकता है।

मुझे क्या चाहिए यह एक स्पष्ट विवरण है कि मुझे अपने Vista बॉक्स पर एक smtp सर्वर स्थापित करने के बाद क्या करना है।

धन्यवाद!

अद्यतन:

class Program 
{ 
    static void Main(string[] args) 
    { 
     MailMessage message = new MailMessage();  
     message.From = new MailAddress("[email protected]");  
     message.To.Add(new MailAddress("[email protected]l.com"));    
     //message.To.Add(new MailAddress("[email protected]"));  
     //message.CC.Add(new MailAddress("[email protected]"));  
     message.Subject = "This is my subject";  
     message.Body = "This is the content";  
     SmtpClient client = new SmtpClient("localhost");  
     client.Send(message);  
     Console.ReadLine();  
    } 
} 

जब मैं इस smtp सर्वर चल रहा है और मैं अपने सांत्वना एप्लिकेशन को अंजाम, यह ग्राहक पर हाथ: http://softstack.com/freesmtp.html

यहाँ की तरह क्या मेरी कोड दिखाई देता है: मैं इस smtp सर्वर से डाउनलोड लाइन भेजो। बाद थोड़ी देर के client.send बार बाहर

http://screencast.com/t/2B7jv0bE14

: smtp सर्वर इस तरह दिखता है।

कोई विचार अब क्या गलत हो रहा है?

धन्यवाद!

उत्तर

9

जैसा कि आप जानते हैं कि एसएमटीपी अब विस्टा के साथ जहाज नहीं है (जो Vista के बारे में मेरी सबसे बड़ी शिकायतों में से एक है)। जैसा कि आप पहले ही जानते हैं कि वहां कई विकल्प हैं, और यदि आपको एक अच्छा मुफ़्त मिला है तो इसे एक लिंक पोस्ट करें। आप इसे कैसे कॉन्फ़िगर करेंगे, आपके द्वारा इंस्टॉल किए गए सर्वर पर संभावित रूप से निर्भर करेगा।

मैंने कुछ परीक्षण smtp सर्वरों के साथ खेला, और जिन लोगों का मैंने उपयोग किया, वे लूपबैक आईपी पते पर मानक एसएमटीपी बंदरगाहों पर सुनना शुरू कर दिया। मुझे विश्वास है कि यह डिफ़ॉल्ट मेलसेटिंग है, और किसी भी बदलाव की आवश्यकता नहीं है।

मेरे पास अब कोई SMTP सर्वर नहीं है और मैं पिकअप निर्देशिका मोड का उपयोग कर रहा हूं। इससे मेल लाइब्रेरी को एक फ़ाइल आउटपुट करने का कारण बनता है जिसे मैं देख सकता हूं।

इस प्रयोग कॉन्फ़िगर करने के लिए अपने config फ़ाइल में निम्न:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
      <specifiedPickupDirectory 
       pickupDirectoryLocation="c:\maildrop"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

आप अपने स्थानीय मेजबान पर पोर्ट 25 से कनेक्ट करने के लिए कॉन्फ़िगर करना चाहते हैं क्या तुम करोगी एसएमटीपी अनुभाग के लिए इस:

<smtp deliveryMethod="Network"> 
    <network defaultCredentials="true" host="localhost" port="25"/> 
</smtp> 

संपादित करें

टेरी ने ड्रॉप स्थान का उपयोग करने के बारे में एक अच्छा सवाल पूछा। मैं केवल परीक्षण के लिए इसका उपयोग करता हूं, क्योंकि हमारे उत्पादन सर्वर में एक एसएमटीपी सर्वर है जिसे मैं कनेक्ट करता हूं, और ईमेल भेजता हूं; हालांकि, कुछ SMTP सर्वर को निर्देशिका देखने के लिए कॉन्फ़िगर किया जा सकता है और वहां कुछ भी उठाएगा और मेल करेगा।

मुझे नहीं लगता कि यह सुविधा केवल परीक्षण के लिए उपयोग की जाने वाली थी, लेकिन यह अच्छी तरह से काम करती है। उत्पन्न होने वाली फ़ाइलें विभिन्न मेल क्लाइंट में खोली जा सकती हैं ताकि आप देख सकें कि वे उन्हें कैसे प्रस्तुत करेंगे। मैं उन्हें .eml फाइलों पर विश्वास करता हूं लेकिन मुझे याद नहीं है।

+0

तो यह तकनीक ईमेल नहीं भेजती है, है ना? क्या यह अभी परीक्षण के लिए प्रयोग किया जाता है? –

+0

धन्यवाद :-) मैं अभी भी इस समाधान से प्यार कर रहा हूं – JoshBerke

0

आप एक बहुत ही बुनियादी एसएमटीपी सर्वर stickymailserver में C# .NET में कोडित पा सकते हैं:

स्टिकी मेल सर्वर एक कम बातचीत एसएमटीपी Honeypot एक खुला SMTP रिले का अनुकरण करने के लिए बनाया गया है। यह जांच संदेशों और सामूहिक मेलिंग को कैप्चर और लॉग करता है और बाद में विश्लेषण के लिए उन्हें बचाता है।

0

आप बाहरी रूप से होस्ट किए गए SMTP सर्वर का उपयोग कर सकते हैं। मैंने पाया है कि मूल एसएमटीपी सर्वर एक गतिशील आईपी पते (अधिकांश आवासीय प्रणालियों की तरह) के पीछे है, तो बहुत सी ईमेल सिस्टम पहुंच को अवरुद्ध कर देगा।

मुझे हाल ही में यह करना पड़ा।

SmtpClient smtp = new SmtpClient("smtp.myserver.com"); 
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtp.Credentials = new System.Net.NetworkCredential("Username", "Password"); 

"SendCompleted" ईवेंट का उपयोग करके, आप एप्लिकेशन को देरी किए बिना पृष्ठभूमि में ईमेल भेज सकते हैं।

0

@JoshBerke

मैं नीचे विकल्प का उपयोग करने की कोशिश की लेकिन प्राप्त कर लिए हैं "आईआईएस पिक निर्देशिका प्राप्त नहीं कर सकता"। मुझे पता है कि मैं एक मौजूदा निर्देशिका की ओर इशारा कर रहा हूं, क्या मुझे निर्देशिका पर स्थापित करने की अनुमति है?

<smtp deliveryMethod="SpecifiedPickupDirectory"> 
    <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop"/> 
</smtp> 
संबंधित मुद्दे

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