Pertanyaan Mengapa imap uid tidak unik? pada folder yang berbeda?


Saya menyimpan elemen kotak surat saya ke database mysql (untuk melakukan pencarian cepat di intranet saya, sejak saat itu imap_search' terlalu lambat).

Saya terhubung ke server dan folder, dan iterasi melalui pesan.

kode yang disederhanakan:

$numMsg = imap_num_msg($conn);

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

dan saya mendapatkan sesuatu seperti ini:

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

yang benar-benar salah !!!

uid tidak seharusnya unik?

Saya mendapatkan UID ini dalam 5 sub-folder yang saya miliki dan juga di Item Terkirim, di Kotak Masuk, saya mendapatkan uids yang benar (msg_num:5 - uid:1503msg_num:6 - uid:1504msg_num:7 - uid:1506)


5
2018-04-25 16:43


asal


Jawaban:


Benar, UID hanya unik per folder. ID unik yang lengkap dari suatu pesan adalah tuple dari nama folder, folder UIDVALIDITY, dan pesan UID. Tuple itu, pada server yang diimplementasikan dengan benar, hanya akan mengacu pada satu pesan.

Sebagai contoh: (DIKIRIM, 1, 100) Menunjukkan pesan dengan ID 100 dari inkarnasi pertama dari folder yang dikirim. UIDVALIDITYs cenderung sekitar 10 digit angka, dan seharusnya berubah jika folder dihapus dan dibuat ulang atau perlu diindeks ulang / diregenerasi oleh perangkat lunak server.


12
2018-04-25 18:55