2010-07-14 3 views
6

मुझे "\ r \ n" का उपयोग करके बहुत सारे PHP ईमेल कार्यान्वयन दिखाई देते हैं, लेकिन मैंने उनमें से कुछ को PHP_EOL स्थिरांक का उपयोग करके भी देखा है। इनमे से कौन बेहतर है?क्या PHP_EOL ईमेल में उपयोग किया जाना चाहिए?

किसी भी मदद
महानगरों

उत्तर

16

यदि यह किसी ईमेल में लाइनों को समाप्त करना है तो यह ईमेल के लिए विशिष्टता है जिसे आपको देखने की आवश्यकता है, किसी भी विशेष मंच पर क्या उपयोग नहीं किया जाता है।

ईमेल में लाइन्स RFC2821

एसएमटीपी आदेशों के लिए और अनुसार CRLF ("\ r \ n") द्वारा समाप्त कर दिया जाता है, जब तक एक सेवा एक्सटेंशन द्वारा बदल दिया, संदेश डेटा, "लाइनों" में प्रेषित कर रहे हैं । लाइन्स में शून्य या अधिक डेटा अनुक्रम एएससीआईआई चरित्र "सीआर" (हेक्स वैल्यू 0 डी) द्वारा समाप्त किए गए वर्णों को ASCII वर्ण "एलएफ" (हेक्स मान 0 ए) द्वारा तुरंत पीछा किया गया है। इस दस्तावेज़ में समाप्ति अनुक्रम के रूप में दर्शाया गया है। अनुरूप कार्यान्वयन को पहचान नहीं होनी चाहिए या किसी अन्य चरित्र या एक लाइन टर्मिनेटर

कि बहुत स्पष्ट लगता है एक ईमेल में पंक्ति के अंत के रूप में \ r \ n भेजा जा रहा है कि के रूप में चरित्र अनुक्रम उत्पन्न करते हैं। कुछ और भेजना काम कर सकता है लेकिन यह तब तक गलत है जब तक आप "सेवा विस्तार" का उपयोग नहीं कर रहे हैं और यदि आप हैं तो आप शायद जानते हैं कि आपको वैसे भी क्या भेजना चाहिए। आरएफसी से परामर्श के लिए

+0

+1। अब जब आपने इसे पोस्ट किया है, तो मुझे एक बार पढ़ने की अस्पष्ट याद आती है। –

+0

बहुत बढ़िया। महान स्पष्टीकरण जेबी के लिए धन्यवाद। – Metropolis

+1

लिनक्स पर PHP मेल() कमांड का उपयोग होने पर हेडर लाइनों को अलग करने के लिए \ n का उपयोग करता है। इसलिए यदि आप किसी कस्टम शीर्षलेख में \ r \ n का उपयोग करते हैं, तो कुछ मेल सर्वर इसे दो न्यूलाइन वर्णों के रूप में समझते हैं और मेल में शीर्षलेख का हिस्सा दिखाते हैं। (साल की टिप्पणी के लिए खेद है, लेकिन यह अभी भी PHP 5.2 में एक समस्या है, यह भी देखें http://fluxbb.org/development/core/tickets/667/) – BurninLeo

0

\r\n के लिए धन्यवाद, विंडोज न्यू लाइन है अगर आप कर रहे हैं ग्राहक हैं ज्यादातर विंडोज उपयोगकर्ताओं तो यह आपके लिए ठीक नहीं होगा।

मैं यह भी मानता हूं कि अधिकांश गैर-विंडोज़ ईमेल क्लाइंट इस के लिए क्षतिपूर्ति करेंगे, इसलिए \r\n मैक या * निक्स पर कोई समस्या नहीं होनी चाहिए।

1

बस सुनिश्चित करने के लिए:

PHP_EOLरिसीवर पक्ष में ईमेल पर कोई प्रभाव नहीं पड़ेगा। यह नए लाइन वर्ण संयोजन का उपयोग करेगा जो आपके PHP स्क्रिप्ट पर चल रहे सिस्टम पर आम है।

तो यदि आपके पास लिनक्स/यूनिक्स सर्वर है, तो PHP_EOL परिणामस्वरूप \n और यदि आपके पास Windows सर्वर है, तो यह \r\n होगा।

आज, यह बात है कि बहुत ज्यादा नहीं है जो आप का उपयोग करना चाहिए और मुझे लगता है कि कि ज्यादातर विंडोज ईमेल एप्लिकेशन संभाल कर सकते हैं बस \n (afaik भी वर्डपैड इस समझता है, यह नोटपैड कि समस्या नहीं है) है।

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