2014-04-25 3 views
5

मैं अपने मेलबॉक्स तत्वों को एक mysql डेटाबेस में सहेज रहा हूं (मेरे इंट्रानेट में तेज खोज करने के लिए, क्योंकि imap_search' बहुत धीमी है)।क्यों imid imid अद्वितीय नहीं है? विभिन्न फ़ोल्डरों पर?

मैं सर्वर और फ़ोल्डर से कनेक्ट कर रहा हूं, और संदेशों के माध्यम से पुनरावृत्ति कर रहा हूं।

सरलीकृत कोड:

$numMsg = imap_num_msg($conn); 

for($i=1;$i<=$numMsg;$i++){ 
    $uid = imap_uid($conn,$i); 
    echo("msg_num:".$i." - uid:".$uid); 
} 

और मैं कुछ इस तरह मिलती है:

msg_num: 5 - uid: 5msg_num: 6 - uid: 6msg_num: 7 - uid: 7msg_num: 8 - uid : 8msg_num: 9 - uid: 9msg_num: 10 - uid: 10msg_num: 11 - uid: 11msg_num: 12 - uid: 12

जो पूरी तरह गलत है !!!

uid अद्वितीय नहीं होना चाहिए?

मैं भेजे गए आइटम में मैं ग्राहकों के पास 5 उप-फ़ोल्डर में इस UIDs मिलता है और यह भी, इनबॉक्स पर मैं UIDs मिल सही (msg_num:5 - uid:1503msg_num:6 - uid:1504msg_num:7 - uid:1506)

+0

यह कुछ प्रकाश डाल सकता है: http://stackoverflow.com/questions/14894624/getting-unique-email-id-with-imap-in-php –

उत्तर

11

ठीक है, यूआईडी फ़ोल्डर प्रति केवल अद्वितीय है। किसी संदेश की पूर्ण निरंतर अद्वितीय आईडी फ़ोल्डर नाम, फ़ोल्डर UIDVALIDITY, और संदेश यूआईडी का एक गुच्छा है। सही ढंग से कार्यान्वित सर्वर पर, यह टुपल, केवल एक संदेश का संदर्भ देगा।

उदाहरण के लिए: (SENT, 1, 100) भेजे गए फ़ोल्डर के पहले अवतार से आईडी 100 के साथ संदेश इंगित करता है। UIDVALIDITYs लगभग 10 अंकों की संख्या होती है, और यदि फ़ोल्डर हटा दिया जाता है और पुनर्निर्मित किया जाता है या सर्वर सॉफ़्टवेयर द्वारा पुन: उत्पन्न/पुनर्निर्मित करने की आवश्यकता होती है तो उसे बदलना होगा।

+0

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

+1

यह अभी भी खतरनाक है। आपको फ़ोल्डर नाम और यूआईडी वैधता को अपनी अतिरिक्त कुंजी के रूप में शामिल करना चाहिए। तो यह पूरी तरह अद्वितीय होगा। – Max

+0

मुझे फ़ोल्डर नाम का उपयोग करने के बारे में निश्चित नहीं है, क्योंकि ईमेल फ़ोल्डर बदल सकता है और फिर भी वही ईमेल हो सकता है या नहीं? यूआईडी द्वारा आप नियमित यूआईडी का मतलब है? या यूआईडी वैधता दूसरी बात है? –

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