2011-12-14 17 views
7

मैं PHP और IMAP का उपयोग कर जीमेल से ईमेल पुनर्प्राप्त कर रहा हूं; हालांकि, कुछ ईमेल में संदेशवाहक नहीं है। क्या सभी संदेश संदेशवाहक नहीं हैं?PHP IMAP - क्या ईमेल को संदेशवाहक होना चाहिए?

मुझे संदर्भ के लिए एक अद्वितीय आईडी की आवश्यकता है, इसलिए मुझे यकीन नहीं है कि इसके बिना ईमेल का ट्रैक कैसे रखें।

क्या मैं कुछ गलत कर रहा हूं?

उदाहरण यहां के लिए एक ईमेल शीर्षक है मैं

[date] => Sun, 06 Nov 2011 21:21:56 -0500 
    [subject] => Daylight Saving Time? Chili's Saving Time! 
    [to] => [email protected] 
    [message_id] => 
    [from] => [email protected] 
    [sender] => [email protected] 
    [reply_toaddress] => [email protected] 
    [size] => 14385 
    [msgno] => 156 
    [status] => Unread 

धन्यवाद

उत्तर

5

कोई भी एमटीए जो मैंने कभी सामना किया है, यदि कोई पहले से मौजूद नहीं है तो संदेश-आईडी जोड़ देगा। हालांकि, अगर आपको संदेशों का ट्रैक रखने या उन्हें थ्रेड करने की आवश्यकता है, तो आपको Message-ID सेट करना होगा। References शीर्षलेख और In-Reply-To शीर्षलेख संदेश को एक साथ जोड़ने के लिए पिछले Message-ID के मान का उपयोग करते हैं।

References जबाब श्रृंखला में पिछले Message-ID मानों की सूची में शामिल है, और In-Reply-ToMessage-ID जो करने के लिए वर्तमान संदेश का सीधा उत्तर होता है।

ध्यान दें कि आरएफसी -2822 विनिर्देश के अनुसार, a Message-ID is technically not required। अच्छी तरह से व्यवहार किए गए एमटीए में आम तौर पर एक शामिल होता है, लेकिन नीचे कुछ टिप्पणीकर्ता उन उदाहरणों का वर्णन करते हैं जहां संदेश आईडी मौजूद नहीं थी, जिससे मैसेजिंग क्लाइंट में विफलताएं आईं।

+0

लेकिन चूंकि इसकी कोई गारंटी नहीं है, इसलिए यह अलग-अलग मेलों के लिए समान संदेश-आईडी का उपयोग करने से एक छोटी गाड़ी/दुर्भावनापूर्ण एमटीए को रोक नहीं देता है? इस स्थिति के खिलाफ सुरक्षा करने का सबसे अच्छा तरीका क्या है? – Pacerier

+0

@Pacerier यदि आपकी चिंता यह सुनिश्चित कर रही है कि कोई अन्य एमटीए आपके सर्वर के संदेश-आईडी को दोहराने नहीं दे सकता है, तो यह मुश्किल है। आप संदेश आईडी, आपके होस्टनाम और एक गुप्त कुंजी के हैश के रूप में संदेश आईडी बना सकते हैं, जिससे संदेश-आईडी बनाना मुश्किल हो जाता है लेकिन मुझे यकीन नहीं है कि आप अधिक लाभ प्राप्त करते हैं। ईमेल में प्रेषक सत्यापन की एकमात्र मजबूत विधि पीजीपी हस्ताक्षर और एन्क्रिप्शन है। –

+1

इस पुराने प्रश्न का एक अद्यतन: मैंने हमेशा विश्वास किया है कि एक संदेश आईडी एक "जरूरी" है - लेकिन मैंने अभी अपने आईएमएपी इनबॉक्स में एक ईमेल खोजा है जिसमें एक नहीं है! मैंने कच्चे स्रोत को देखा। मेरा आईएमएपी-संदेश पढ़ने का सॉफ्टवेयर इस वजह से दुर्घटनाग्रस्त हो गया, मेरे जैसे यह माना जाता है कि हमेशा एक संदेश आईडी होती है। –

5

संदेश आईडी IMAP के साथ कोई संबंध नहीं है लेकिन मेल ही एक हिस्सा है मिलता है और के रूप में "वैकल्पिक" (RFC 2822 में निर्दिष्ट हालांकि यह कहता है कि यह उपस्थित होना चाहिए):

हालांकि वैकल्पिक, प्रत्येक संदेश में "संदेश-आईडी:" फ़ील्ड होना चाहिए।

तो यदि कुछ मेल में संदेश-आईडी की कमी है तो आप कुछ भी गलत नहीं कर रहे हैं। यह उन सभी मेलों के लिए होता है जो एमयूए ने मूल रूप से मेल भेजा था, जिसके लिए एक उत्पन्न नहीं हुआ था (हालांकि प्रत्येक सामान्यतः एमयूए का उपयोग किया जाना चाहिए)।

IMAP के माध्यम से मेल की पहचान करने के लिए एक अद्वितीय आईडी के बारे में, आप in the standard वर्णित यूआईडी फ़ील्ड पर एक नज़र डालना चाहते हैं।

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

  • कोई संबंधित समस्या नहीं^_^