2011-02-06 2 views
6

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

मैंने एक परियोजना में एक बुनियादी दायरे में कार्यक्षमता लागू की है (बहुत जटिल नहीं था), लेकिन मुझे आश्चर्य है कि क्या कोई समर्पित जावा लाइब्रेरी है जिसे उस उद्देश्य के लिए पुन: उपयोग किया जा सकता है?

मैंने कुछ खोज किया, लेकिन बिना किसी परिणाम के (vesijama, spring mail या commons mail ईमेल संदेश तैयार करना आसान बनाते हैं, लेकिन उल्लेख की गई विशेषताएं प्रदान नहीं करते हैं)।

उत्तर

3

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

सभी एमटीए की इच्छा बफर एक स्पूल फ़ाइल या कुछ अन्य डेटा की दुकान में उनके संदेश और स्वचालित रूप से पुन: प्रयास करें किसी भी वसूली योग्य विफलताओं। यह RFC 2821 (धारा 4.5.4) के लिए आवश्यक है:

... जबकि मेल कि तुरंत प्रेषित नहीं किया जा सकता पंक्तिबद्ध किया जाना चाहिए और समय-समय पर प्रेषक द्वारा पुन: प्रयास [...]

पुनर्प्रयास संदेश प्रेषित होने तक जारी रखें या प्रेषक ऊपर देता है; छोड़ने का समय आमतौर पर कम से कम 4-5 दिनों की आवश्यकता होती है। पुनः प्रयास एल्गोरिदम के पैरामीटर कॉन्फ़िगर करने योग्य होना चाहिए।

किसी भी एमटीए समस्याओं का सामना करना पड़ता है कि यह रिपोर्ट में सक्षम है, यह सिर्फ आम शालीनता है। वे आम तौर पर मेजबान ऑपरेटिंग सिस्टम की syslog सुविधा को लिखेंगे, जिस पर किसी भी तरीके से निगरानी की जा सकती है।

मुझे लगता है कि उनमें से सभी दर सीमा लागू नहीं करते हैं, लेकिन एक बहुत तेज़ Google खोज से पता चलता है कि मैंने जो तीन उल्लेख किए हैं वे सभी सक्षम हैं।

+0

बस इतना नहीं कि नोबियों को यह नहीं लगता कि आप चिल्ला रहे हैं: आरएफसी 211 9 कई आरएफसी में उपयोग किए जाने वाले कुछ महत्वपूर्ण पूंजीकृत शब्दों का अर्थ निर्दिष्ट करता है। यह एक * जरूरी है * पढ़ना;) – SyntaxT3rr0r

+0

लेकिन फिर ओपी को उसी सर्वर पर चलने वाले एमटीए की आवश्यकता होती है क्योंकि इसका जावा एप्लिकेशन सही है?यदि एमटीए का लिंक नीचे है, तो आरएफसी 2821 का अधिक उपयोग नहीं किया जाएगा? – SyntaxT3rr0r

+1

आपके उत्तर के लिए धन्यवाद। मुझे एमटीए क्षमताओं के बारे में पता है, लेकिन मुझे ऐसी स्थिति की चिंता है जब एमटीए कुछ समय के लिए उपलब्ध नहीं है और मुझे उस समय सीमा में ट्रिगर किए गए संलग्नक के साथ सैकड़ों महत्वपूर्ण ईमेल भेजना होगा, जिसमें केवल "ईमेल भेजने में असमर्थ" त्रुटियां होंगी आवेदन लॉग जिस विश्वसनीयता के बारे में मैं बात कर रहा हूं वह है "एप्लिकेशन पर -> एसएमटीपी सर्वर कनेक्शन स्तर"। –

0

OOP MailScheduler API पर एक नज़र डालें यह लाइब्रेरी ऑब्जेक्ट सीरियलाइजेशन द्वारा डेटाबेस में विफल ईमेल स्टोर करती है। निर्धारित समय पर, बैक-ग्राउंड थ्रेड SQL तालिका से ई-मेल का चयन करेगा और इसे SMTP सर्वर पर भेज देगा। यदि एसएमटीपी सर्वर के साथ संचार विफल रहता है, तो बैक-ग्राउंड थ्रेड निर्दिष्ट गणना तक ई-मेल भेजना जारी रखेगा।

2

मैं आपको Asprin की सलाह दूंगा।

एस्पिरिन जावा डेवलपर्स के लिए एक एम्बेड करने योग्य केवल-एसएमटीपी सर्वर है।

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