2011-03-28 18 views
5

मैं जो सभी ईमेल भेजने का उपयोग चाहे वह संपर्क फ़ॉर्म, या अधिसूचना के अपडेट आदि किसी तरह से हो सकता है वेब अनुप्रयोगों की एक जोड़ी हैएक ईमेल प्रेषक सेवा बिल्डिंग

समस्या मैं पाया है वहाँ नहीं है कि है ईमेल जो वेब अनुप्रयोगों से भेजे जा रहे हैं ट्रैक करने के लिए वास्तव में किसी भी तरह से, तो मैं एक संभव समाधान के साथ आ गया है: सुंदर सीधे आगे वास्तव में

Figure1. Flow Diagram of Email Sender Service

यह है - के बजाय प्रत्येक वेब आवेदन भेजने होने का खुद को ईमेल करें मैं एक केंद्रीय ईमेल प्रेषक सेवा बनाकर प्रक्रिया को एकजुट करना चाहता हूं बर्फ।

बुनियादी शर्तों में, प्रत्येक एप्लिकेशन डेटाबेस से 'आउटबाउंड ईमेल' तालिका में केवल पंक्ति, से, विषय, सामग्री डेटा के साथ एक पंक्ति बनायेगा।

ईमेल प्रेषक सेवा (विन सेवा) तब आउटबॉक्स से ईमेल उठाएगी, उन्हें भेजें और फिर भेजे गए अनुसार चिह्नित करें।


हालांकि मैं डेटाबेस में (करने के लिए, से, विषय, सामग्री) 'बुनियादी ईमेल' जानकारी स्टोर होता है, क्या मैं सच में करना चाहते हैं यह भी है 'MailMessage' वस्तु ही स्टोर इतना है कि ईमेल प्रेषक सेवा तब मूल मेलमेज़ेज को डी-सीरियलाइज कर सकती है क्योंकि इससे किसी भी एप्लिकेशन को ईमेल को पूरी तरह से अनुकूलित करने की अनुमति मिल जाएगी।

क्या इस तरह MailMessage ऑब्जेक्ट का उपयोग करने में कोई समस्या है?

अपडेट: एक अन्य उद्देश्य, भेजे गए ईमेल का लॉग स्टोर करना है - इसलिए डेटाबेस का उपयोग करने का कारण।

उत्तर

5

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

यह आर्किटेक्चर का अर्थ है कि डेटाबेस सेवा के लिए आंतरिक हो जाता है और इसलिए आपके अनुप्रयोगों के बीच युग्मन को कम करता है (प्रत्येक एप्लिकेशन डेटाबेस स्कीमा के बजाय अपेक्षाकृत छोटे सार्वजनिक अनुबंध के बारे में जानता है)। इसका अर्थ यह भी है कि यदि आपको डेटाबेस में MailMessage ऑब्जेक्ट्स को संग्रहीत करने में कुछ समस्या आती है तो आप अपने सभी क्लाइंट को अपडेट किए बिना स्टोरेज विधि बदल सकते हैं।

+1

मुझे यह विचार वास्तव में पसंद है! मेरे पास ईमेल प्रेषक के लिए एक होस्टेड डब्ल्यूसीएफ सेवा हो सकती है, और वेब एप्लिकेशन इसके बजाए इंगित कर सकते हैं और डब्ल्यूसीएफ ईमेल को डेटाबेस (लॉगिंग के लिए) में डालकर और तुरंत ईमेल भेजने के लिए संभाल सकता है। – Dal

3

डेटाबेस का उपयोग क्यों करें? बस एप्लिकेशन को आपकी ईमेल सेवा सीधे कॉल करें, सभी जानकारी प्रदान करें।

यदि आप भेजना चाहते हैं, तो आप डब्ल्यूसीएफ के साथ बाध्यकारी net.msmq का उपयोग कर सकते हैं, जो अनुरोधों को विश्वसनीय कतार में संग्रहीत करेगा जो सेवा से पढ़ेगी। यह सब आपके लिए किया जाएगा।

+0

क्षमा करें जॉन, मैंने यह स्पष्ट नहीं किया कि मैं वास्तव में भेजे गए सभी ईमेल के लॉग का कुछ रूप देखना चाहता हूं। मुझे पता है कि यदि आप आवश्यकता हो तो इसके लिए आप एसएमटीपी लॉग के माध्यम से ट्रैवल कर सकते हैं लेकिन मुझे लगता है कि डेटाबेस तालिका की तुलना में यह बोझिल है। मुझे लगता है कि आपके द्वारा उल्लिखित डब्ल्यूसीएफ का उपयोग करने का तरीका है :) – Dal

+0

@Dal: आगे बढ़ें और लॉग इन करने के लिए डेटाबेस का उपयोग करें, लेकिन मैं सेवा को अनुरोध भेजने के लिए सीधे डब्ल्यूसीएफ का उपयोग करूंगा। –

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