2010-03-10 10 views
6

लोग,ईमेल कभी कभी तले हो

मैं एक PHP आधारित साइट (QCubed framework का उपयोग) है; साइट के एक हिस्से के रूप में, मेरे पास एक डिमन है जो एक दिन में कई हजार ईमेल भेज रहा है (नहीं, मैं स्पैमर नहीं हूं, सबकुछ ऑप्ट-इन है :))। ईमेल कस्टम फ्रेमवर्क घटक के माध्यम से भेजे जाते हैं; वह घटक एक एसएमटीपी ग्राहक के रूप में कार्य करता है। मैं वास्तव में ईमेल वितरित करने के लिए DNSExit.com से एक सशुल्क एसएमटीपी गेटवे का उपयोग कर रहा हूं।

वे ईमेल सरल HTML-आधारित ईमेल हैं; वे वास्तव में अंदर बस सरल लिंक है।

मेरी समस्या यह है कि कभी-कभी ये लिंक (लगातार नहीं!) संक्रमण के दौरान scrambled मिलता है। टैग किसी भी तरह मिश्रित हो जाते हैं, और कुछ लिंक ईमेल में गैर-कार्यात्मक होते हैं। यह मुद्दा सभी भेजे गए ईमेल के एक छोटे प्रतिशत पर होता है; यह संगत नहीं है (यानी वही सटीक स्रोत संदेश HTML संक्रमण में स्कैम्बलिंग का कारण बन सकता है या नहीं)।

क्या आपने इनमें से कोई देखा है? समस्या निवारण के बारे में कोई विचार?

+0

"(यानी एक ही सटीक स्रोत संदेश HTML या संक्रमण में पांव मार का कारण नहीं हो सकता है)" लेकिन जब वे कारण संक्रमण है जो मेल प्रदाता में आप आमतौर पर है कि समस्या मिल में पांव मार? हॉटमेल? जीमेल या कोई अन्य? या इससे कोई फर्क नहीं पड़ता कि रिसीवर मेल क्या है? –

+0

मैंने सभी ईमेल प्रदाताओं के साथ समस्याएं देखी हैं। गंतव्य उपयोगकर्ता के प्रदाता के लिए विशिष्ट प्रतीत नहीं होता है। –

+0

एन्कोडिंग क्या है? बेस 64 का प्रयास करें, भले ही अटैचमेंट न हो। जो चीजों को ठीक रखना चाहिए। – dusoft

उत्तर

0

ईमेल डेटा के साथ 2 समस्याएं थीं - आमतौर पर "?" कुछ शब्दों के अंदर किसी भी तरह का प्रतीक मिला, दूसरा यूटीएफ और शीर्षक से संबंधित था। पहले होस्टिंग प्रदाता को बदलकर "निश्चित" हो गया (इसलिए यह मेल-सर्वर से संबंधित था) दूसरा PHP PHPer लाइब्रेरी को बदलकर तय किया गया।

यह निर्दिष्ट करने का प्रयास करें कि डेटा वास्तव में कैसे स्कैम्बल किया गया है।

3

क्या यह संभव है कि आप ईमेल बनाने के लिए अस्थायी फ़ाइलों का उपयोग कर रहे हों (या कम से कम परिवर्तनीय सामग्री बनाने के लिए)? मैंने एक समय पर एक बार समान रूप से समान कुछ किया। ईमेल टेक्स्ट जेनरेट किया गया था और सेकेंड में सटीक समय के आधार पर एक अस्थायी फ़ाइल में लिखा गया था। दुर्भाग्यवश, प्रति दिन हजारों को भेजते समय, हम एक ही बार में एक से अधिक बार मार रहे थे (क्योंकि केवल 86k सेकंड उपलब्ध हैं)। यह एक समझा सकता है) छोटी त्रुटि दर और बी) स्पष्ट यादृच्छिकता। समस्या निवारण के लिए, मैं देखता हूं कि त्रुटि दर ईमेल की संख्या के साथ बढ़ जाती है और वहां से जाती है।

+0

+1 यादृच्छिकता कारक पर टिप्पणी करने के लिए +1 - यह अक्सर बहुत कम अनुमानित – hurikhan77

+1

हल करने के लिए अद्वितीय नामों के साथ temp फ़ाइलों को बनाने के लिए फ़ंक्शन हैं। मुझे पूरा यकीन है कि वे पहले अस्तित्व की जांच भी करते हैं, इसलिए शायद यादृच्छिकता बढ़ाने की कोशिश करने की बजाय कोशिश करें। –

0

क्या आपके पास अपने लिंक में कोई विशेष विशेषता है? अंदर से बच निकले उद्धरण के साथ शीर्षक विशेषता हो सकती है?

कुछ इस तरह: <a href="http://some.site" title="My "correct" link">Link</a>

1

मैं एक सर्वर चल रहा sendmail पर एक समान समस्या हुई थी।

मैं एक HTML ईमेल बना रहा था और परीक्षण कर रहा था जो एक दिन बड़े पैमाने पर मेल किया जाएगा (निश्चित रूप से ऑप्ट-इन)। मेरे पास ईमेल के लिए एक टेम्प्लेट था जो किसी भी एचटीएमएल प्रोग्रामर को पढ़ने के लिए आसान था, लेकिन जैसा कि सबकुछ ठीक से लाइन करने के लिए व्हाइटस्पेस पर भारी था। मैंने खुद को सोचा, अगर यह बड़े पैमाने पर ईमेल किया जा रहा है, टेम्पलेट के बाद, मुझे लगता है कि मैं अंतरिक्ष में बचाने के लिए फ़ाइल में व्हाइटस्पेस को कम कर दूंगा! तो मैंने प्रस्तुत ईमेल से व्हाइटस्पेस भेजने के लिए किसी भी अनावश्यक से छुटकारा पाने के लिए एक शानदार नियमित अभिव्यक्ति बनाई।

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

यह बताता है कि अगर आपके ईमेल में कोई लाइन लाइन ब्रेक के बिना बहुत लंबी हो जाती है तो प्रेषण इसे पसंद नहीं करता है। जब लाइन बहुत लंबी हो जाती है, तो प्रेषण एक विस्मयादिबोधक चिह्न डालेगा, उसके बाद एक लाइन ब्रेक के बाद और वहां, बस आपको भ्रमित करने और भ्रमित करने के लिए।

यह शब्दों को लाइन ब्रेक के बीच केवल एक जगह क्यों नहीं चुना? विस्मयादिबोधक चिह्न क्यों डालें? प्रश्न मैं बिना जवाब के डर रहा हूँ।

मेरा समाधान?

sudo apt-get remove sendmail 
sudo apt-get install exim4 

मैं sendmail के साथ अन्य समस्याओं रहा था जैसे कि यह एक पूर्ण 60 सेकंड लेने के लिए एक ईमेल भेजने के लिए और सिर्फ काम किया exim4 और मैं इसके बारे में फिर से सोचने के लिए किया था कभी नहीं किया है।

यदि आपका मेल सर्वर sendmail का उपयोग कर रहा है, तो यह बहुत अच्छी समस्या हो सकती है, अगर नहीं, तो मुझे अपनी कहानी साझा करने के लिए धन्यवाद। मुझे भागने की जरूरत थी।

1

जब आप ईमेल भेज रहे हैं तो आपको इसे एन्कोड करना चाहिए ताकि संदेश निकाय में प्रत्येक पंक्ति 76 वर्णों से अधिक न हो। आप इसके लिए बेस 64 का उपयोग कर सकते हैं लेकिन अधिकांश सिस्टम टेक्स्ट के लिए उद्धृत-प्रिंट करने योग्य एन्कोडिंग का उपयोग करते हैं क्योंकि यह छोटे संदेश उत्पन्न करता है। बेस 64 आमतौर पर केवल बाइनरी डेटा के लिए उपयोग किया जाता है।

1

समस्या यह है कि HTML ईमेल के साथ संगत नहीं है। यही कारण है कि मैंने Mail Markup Language बनाया।

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

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

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

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

समस्या का समाधान एक मार्कअप भाषा सम्मेलन बनाना है जो सीधे ईमेल हेडर डेटा की आवश्यकताओं को पहचानता है। क्लाइंट प्रोसेसिंग के लिए एसएमटीपी प्रोटोकॉल और आरएफसी 5322 के लिए आरएफसी 5321 में उन आवश्यकताओं को परिभाषित किया गया है। ईमेल थ्रेड की जटिलताओं के लिए इस समाधान को सही तरीके से बढ़ाने का एकमात्र तरीका बहु-एजेंट डीओएम के लिए एक सम्मेलन प्रदान करना है।

तकनीकी त्रुटिपूर्णता और बहु-एजेंट डीओएम शब्द और एक आविष्कारित विशेषता की प्रकृति के बीच अंतर को संपादित करने से पहले यहां वर्णित पैराग्राफ हटा दिए गए हैं।

संपादित करें: एक बहु-एजेंट डोम कुछ पदानुक्रम लागू करता है, जो ईमेल थ्रेड का प्रतिनिधित्व करने के लिए आवश्यक नहीं हो सकता है।

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