Gmail, Mail.ru ve Yandex(mail) servislerinde folderler ve maillerin chekilmesinin sade mentiqi
Mail.ru servisi uzerinden gelen folderler UI Language den asili olmayaraq hemishe bir dilde gelir. Lakin Gmail da bu mentiq bashqadir. UI language gore folderler hemin language de gele biler. Eger folderleri chekib bazaya yaziriqsa, aydindir ki, UI terefde dil deyishse, bizim servisimiz duzgun ishlemeyecek. Duzgun ishlemeyecek deyerken, eyni Folderler muxtelif dillerde bazamiza otura biler.
Nece hell etmeli ?
IMAPFolder classi var, hansi ki, Folder classini extends edir. Bize gelen Folder classinin obyektini IMAPFolder classina cast eleye bilerik. Bu da bize bu ozellikleri verir ki, folder e aid olan attributelari cekek.
Attributelara \Inbox, \Sent, \Trash ve s gostermek olar. Bu attributelara esasen folderin eslinde hansi folder oldugunu teyin etmek olar.
Birinci if sertinde yazilan kodun izahi :
Gmail da custom folder anlayishi olmadigina gore, bele bir kod yazmisham. Gmail da yalniz custom label anlayishi movcuddur. Label a ise mesaji move elemek olur. Bir nov her hansisa mesajin hem de bu label e aid oldugunu gosterirsen. Buna gore custom label lari chekmeye ehtiyac yoxdur. eks halda duplicate maillar bazaya yazilmish olar. Kodun texniki cehetden izah etsek, Inbox folderi ve custom label la default olaraq \HasNoChildren attribute a sahib olurlar. Bunu ferqlendirmek uchun eger bu atttribute a sahibdirse ve adi INBOX dursa bu zaman bazaya yaz eks halda yox.
Bir shey de qeyd edim, Mail ve Gmail servislerinde INBOX folder hemishe eyni adli olur. Bir standart kimi.
Mail da ise custom folder anlayishi var, sadece custom folder hech bir attribute a sahib olmur. bu da avtomatik olaraq else if halina uygun gelir ve custom folderleri rahatca bazamiza yaza bilerik
Yandex in mail servisinde de bu mentiq ishleyir. Burada folderler \HasNoChildren \Unmarked ve spesifik attribute a sahib olur . Meselen \Trash ve ya \Drafts
Comments
Post a Comment