2011-05-30 6 views
7

मैं संलग्नक के साथ मेल भेजने के लिए PHP मेल() फ़ंक्शन का उपयोग कर रहा हूं। इसलिए PHP स्रोत सामग्री को परिभाषित करने के लिए एक सीमा है जहां लगाव शुरू होता है और समाप्त होता है।एमआईएमई सीमा (मेल संलग्नक के लिए) बनाने के लिए कौन सा नियम

तो सवाल यह है: वहाँ इस माइम सीमा (exampt जिसमें केवल अक्षर और numbres हैं अनुमति दी जाती है) बनाने के लिए किसी भी ruels मैं अभी भी इस तो सवाल यह पता कर रहे हैं ->What rules apply to MIME boundary? यह आवश्यक एक HASH एक सीमा बनाने के लिए करें है ? क्योंकि निम्नलिखित भी काम करता है:

$headers .= "Content-Type: multipart/related; boundary=\"abc\""; 
[...] 
$msg .="--abc\n"; 
[...] 
$msg .= "--abc--\n\n"; 

एक कारण है, क्यों एक MIME सीमा एक अनूठा मूल्य होना चाहिए है?

..i इंटरनेट पर कोई जानकारी नहीं मिली।

धन्यवाद!

+0

अपने खुद के माइम संदेश न बनाएं। PHPMailer या Swiftmailer का उपयोग अपने लिए करने के लिए करें। –

+1

..okay .. लेकिन क्यों नहीं? PHPMailer या Swiftmailer तीसरे पक्ष के उपकरण हैं, है ना? –

+0

php का मेल फ़ंक्शन जितना संभव हो उतना छोटा करता है जबकि मेल भेजने में सक्षम होता है। यह अत्यधिक संभावना है कि आप जो कुछ भी भेजते हैं उसे गायब हेडर और व्हाट्नॉट के कारण स्पैम के रूप में फ़्लैग किया जाएगा। –

उत्तर

3

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

आपका ईमेल कुछ इस तरह दिखेगा:

--abc-- <--actual boundary 
This is my email. There are many like it, but this one is mine. 
Now for some reason I'm going to put in a line that shouldn't be there 
--abc-- <--part of the email 
There it was. Did you see it? No, you didn't, because the mail client saw a boundary 
line and sliced it out. Because of this extra boundary, now the email has 2 sections, 
instead of 1. 
--abc-- <--actual boundary 

तो ... कैसे ईमेल का हिस्सा है और क्या सिर्फ "भूमि के ऊपर" है पता करने के लिए एक मेल क्लाइंट है? यही कारण है कि आप अद्वितीय सीमाओं का उपयोग करते हैं।

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

+1

इसलिए प्रत्येक रन पर एक सीमा उत्पन्न करना महत्वपूर्ण नहीं है। (जो सीपीयू पावर खर्च करता है)। सभी मेलों के लिए इस हैश का उपयोग करने के लिए, एक लंबा हैश बनाने के लिए पर्याप्त है। –

+1

नहीं। आपको हर बार हैश उत्पन्न करना होगा। कुछ भी नहीं कहता है कि हैश किसी अन्य ईमेल के शरीर में स्वाभाविक रूप से दिखाई नहीं दे सकता है .. यह 'इनलाइन सिग्नलिंग' के साथ समस्या है। कोई फर्क नहीं पड़ता कि सीमा मार्कर स्वाभाविक रूप से दिखाई देने के लिए कितना असंभव है, यह कभी असंभव नहीं हो सकता है। –

+0

मैं स्पष्ट नहीं हूं कि बाध्य डेटा का हैश कंप्यूटिंग कैसे छद्म-यादृच्छिक सीमा उत्पन्न करने और इसके लिए बाध्य डेटा खोजने से अधिक कुशल है, यह देखते हुए कि आधुनिक स्ट्रिंग-सर्च फ़ंक्शंस कितने कुशल हैं।और फिर आपको एक सीमा मिलती है जो सांख्यिकीय रूप से 'अद्वितीय' (आईएसएच) की बजाय वास्तव में अद्वितीय है। – Spike0xff

3

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

+1

यदि सीमाएं अद्वितीय नहीं हैं, तो यह मेल चेन होने या अनुलग्नक के रूप में ईमेल संलग्न करने से प्रभावित हो सकती है। – ThinkBonobo

+0

इस अर्थ में हैश अद्वितीय नहीं हैं। परिभाषा के अनुसार एक हैश एक-से-एक फ़ंक्शन है, इसलिए परिभाषा के अनुसार, इस डोमेन में मेल संदेशों को अपने डोमेन पर अद्वितीय नहीं है। (यदि वे अद्वितीय थे, तो हम उन्हें अद्भुत संपीड़न प्राप्त करने के लिए उपयोग करेंगे, है ना?) – Spike0xff

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