2008-09-11 13 views
7

मैं एक विंडोज फॉर्म (.NET 3.5) एप्लिकेशन पर काम कर रहा हूं जिसमें अंतर्निहित अपवाद हैंडलर है जो किसी भी (स्वर्ग निषिद्ध) अपवादों को पकड़ने के लिए हो सकता है। मैं अपवाद हैंडलर को "त्रुटि त्रुटि रिपोर्ट" बटन पर क्लिक करने के लिए उपयोगकर्ता को संकेत देने में सक्षम होना चाहता हूं, जिसके बाद ऐप को मेरे फोगबगज़ ईमेल पते पर एक ईमेल भेजने का कारण होगा।.NET एप्लिकेशन से ईमेल भेजने का सबसे अच्छा तरीका?

ऐसा करने का सबसे अच्छा तरीका क्या है, और क्या वहां देखने के लिए कोई "गॉथचास" है?

उत्तर

3

आप here रूपरेखा के रूप में SmtpClient क्लास का उपयोग करना चाहेंगे।
कोई गठिया नहीं है - ईमेल भेजना जितना आसान हो उतना आसान है।

+3

अगर आपको अपने 1000 उपयोगकर्ताओं को smtp के साथ मेल भेजने की आवश्यकता है तो यह कितना स्केलेबल है? क्या आपको धीमा करने के लिए अतिरिक्त कोड लिखना है ताकि smtp सर्वर बाढ़ न हो? – Haoest

1

आप तीसरे पक्ष aspNetEmail लाइब्रेरी को भी देखना चाहते हैं, जिसमें सिस्टम.Net.Mail आपको प्रदान करने के लिए बहुत उपयोगी सुविधाएं प्रदान करता है।

2

एक नियंत्रित वातावरण में, SmtpClient का उपयोग कर उत्तर होगा। लेकिन किसी उपयोगकर्ता की मशीन पर आपको भेजने के लिए एक एसएमटीपी सर्वर की आवश्यकता होगी।

आप उपयोगकर्ता को उनके एसएमटीपी प्रमाण-पत्रों के लिए संकेत दे सकते हैं, लेकिन मुझे लगता है कि यह आपके मामले के लिए अव्यवहारिक होगा। एक उपयोगकर्ता के रूप में, मैं अपने एसएमटीपी प्रमाण-पत्रों को एक यादृच्छिक ऐप (स्पैम सोचने) में नहीं देना चाहता। आप ऐप में अपने स्वयं के एसएमटीपी क्रेडेंशियल्स को हार्ड-कोड नहीं करना चाहते हैं, यह दुर्भावनापूर्ण उपयोगकर्ता के लिए उन क्रेडेंशियल्स को स्नीफ करना और स्पैम भेजने के लिए अपने सर्वर का उपयोग करना मुश्किल होगा।

आदर्श रूप से आप ईमेल भेजने के लिए उपयोगकर्ता के मेल एजेंट का उपयोग करने में सक्षम होंगे। मैं सोच रहा था कि आप एक mailto: URL बनाने और निष्पादित करने में सक्षम हो सकते हैं, लेकिन मुझे यकीन नहीं है कि क्या आप संदेश के लिए शरीर या किसी अनुलग्नक को निर्दिष्ट करने में सक्षम होंगे।

+0

वाक्यविन्यास mailto है: [email protected]? विषय = हैलो और बॉडी = वर्ल्ड! पैरामीटर यूआरएल से बच जाना चाहिए – rpetrich

6

आपको क्लाइंट प्रमाण-पत्रों के बारे में चिंता करने की आवश्यकता नहीं है और केवल एस्टेबान द्वारा सुझाए गए SMTpClient का उपयोग करने की आवश्यकता नहीं है। आपको उपयोगकर्ता को कॉन्फ़िगरेशन पर एक मान्य Smtp सर्वर url प्रदान करने की आवश्यकता होगी, लेकिन अधिकांश आईएसपी अज्ञात smtp को आपके नेटवर्क (उनके ग्राहकों में से एक) प्रदान करने की अनुमति देते हैं - जब तक कि उपयोगकर्ता अपने आईएसपी smptp सर्वर के लिए यूआरएल डालता है तब तक लोगों को कोई समस्या नहीं होगी।

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

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="smtp.somewhere.com.au" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

उपयोगकर्ता नाम और पासवर्ड वैकल्पिक हैं। Intellisense कॉन्फ़िगरेशन फ़ाइल के इन हिस्सों के लिए काम करता है।

संपादित करें: मेरे कोड उदाहरण में मामूली सुधार।

+0

हे! क्या आप कृपया मेरा नाम सही ढंग से वर्तनी करेंगे? धन्यवाद, एस्टेबान –

2

आपने बताया कि आप फोगबगज़ का उपयोग कर रहे हैं।

http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722 या http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for-the-FogBugz-API.aspx?isl=59722

प्रयास करें चारों ओर कुछ नमूना कोड है, मैं अपने अमेरिकन प्लान में लगता है कि निर्देशिका स्थापित करें। मैंने माइकल प्रायर के साथ फिर से जांच की: लाइसेंसिंग और उन्होंने कहा कि उनके कोड का उपयोग करना ठीक था, लेकिन वाईएमएमवी, इसलिए मैं जांच करूंगा।

यह एक अच्छा प्रारंभिक बिंदु प्रदान करता है।

0

आप here रूपरेखा के रूप में SmtpClient क्लास का उपयोग करना चाहेंगे। कोई गठिया नहीं है - ईमेल भेजना जितना आसान हो उतना आसान है।

एक व्यापक System.Net.Mail FAQhere स्थित है।

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

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