Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Mbledhësi më i mirë i postës. Mbledhësi i postës (duke i vështirësuar gjërat e thjeshta)

Mbledhësi më i mirë i postës. Mbledhësi i postës (duke i vështirësuar gjërat e thjeshta)

Kalimi nga një skedë nga Gmail në tjetrin me Yandex.Mail është mjaft e lodhshme. Dhe nëse keni një duzinë llogarish me ofrues të ndryshëm të postës, kontrollimi i korrespondencës së re në mëngjes kthehet në torturë. Duke kombinuar shkronjat në një vend, do të shpëtoni nga ky shqetësim.

Ndërfaqja në ueb

Shumica e ofruesve të postës elektronike ofrojnë një veçori të integruar për të mbledhur email nga kuti postare të shumta. Për shembull, le të përpiqemi të mbledhim letra nga të gjitha kutitë tuaja postare në një llogari Gmail.

Para së gjithash, sigurohuni që shërbimi i postës nga ku dëshironi të grumbulloni letra të ketë akses POP. Pastaj shkoni te cilësimet tuaja të Gmail dhe klikoni në "Cilësimet" në këndin e sipërm të djathtë. Shkoni te skeda "Llogaritë" dhe kërkoni seksionin "Merrni postë nga llogari të tjera".

Shtoni një llogari, shkruani adresën tuaj të emailit dhe klikoni Next, më pas shkruani fjalëkalimin tuaj. Për ta bërë më të sigurt shkëmbimin e postës ndërmjet ofruesve, sigurohuni që opsioni "Përdor gjithmonë lidhje të sigurt (SSL) kur merr postë" është i aktivizuar. Pastaj klikoni në "Shto llogari".

Tani emailet që mbërrijnë në adresën e shtuar do të mblidhen automatikisht në kutinë hyrëse të Gmail-it tuaj. Mund të shtoni sa më shumë adresa postare që ju nevojiten.

Klientët e desktopit

Email-i ka nevojë për softuer. Po, ju mund të bëni shumë në klientin e postës në ueb (nganjëherë shumë më tepër nga sa ju lejon Google aktualisht të bëni në Gmail). Por ndërfaqja e internetit nuk mund të krahasohet me një aplikacion vendas. Edhe ndërfaqja më moderne e uebit është një pengesë për trajtimin e postës.

Rafe Needleman, Сnet.com

Gjëja më e mirë për klientët e postës elektronike në desktop është se ata mund të grumbullojnë email nga shumë llogari. Në të njëjtën kohë, ju mund të punoni me dhjetëra adresa dhe as të mos mendoni se cili ofrues ruan këtë apo atë mesazh.

Shumica e klientëve të postës elektronike të desktopit kanë një kuti hyrëse gjenerike të integruar. Edhe nëse klienti juaj i preferuar mbështet vetëm dosje të veçanta të kutisë hyrëse, prapëseprapë mund t'i mbledhni lehtësisht së bashku duke përdorur filtra inteligjentë.

Pavarësisht nga fakti se Outlook është krijuar për të menaxhuar kuti postare të shumta në të njëjtën kohë, ai ende shfaq një kuti hyrëse të veçantë për secilën llogari. Por kjo mund të korrigjohet lehtësisht me filtra.

Hapni Outlook, shkoni te skeda "Dosje" dhe klikoni "Krijo dosje kërkimi" në shiritin e veglave. Pastaj zgjidhni Krijo dosje të kërkimit të personalizuar. Klikoni në "Zgjidh", por mos zgjidhni asnjë kriter kërkimi në mënyrë që të gjitha mesazhet e reja të dërgohen në dosje. Emërtoni dosjen si të dëshironi, si p.sh. Të gjitha postat.

Klikoni në "Shfleto", zgjidhni të gjitha dosjet dhe kutitë postare nga të cilat dëshironi të grumbulloni postë dhe kontrolloni opsionin "Kërko në nënfolder".

Tani, në dosjen inteligjente që keni krijuar, do të shfaqen letra nga të gjitha llogaritë e postës që keni shtuar në Outlook. Mund të aktivizoni opsionin "Shfaq në të preferuarat" në mënyrë që posta juaj e re të jetë gjithmonë në dukje.

Klienti i postës Mac siguron një kuti të vetme hyrëse për të gjitha llogaritë e lidhura. Thjesht shtoni llogaritë tuaja dhe të gjitha emailet e reja do të mblidhen në një vend.

Thunderbird e bën të lehtë mbledhjen e të gjitha emaileve tuaja në një kuti hyrëse. Shkoni te menyja "Shiko" (nëse shiriti i menusë nuk shfaqet, shtypni Alt). Pastaj zgjidhni "Dosjet" → "Të konsoliduara". Tani do të keni një kuti hyrëse për email-et e reja, një dosje Drafts, një dosje Artikuj të dërguar dhe një dosje Arkivi. Ju nuk duhet të kërkoni për një kohë të gjatë, çfarë është ku. Në këtë rast, mesazhet, si më parë, do të ruhen në serverët e ofruesve tuaj të postës.

Klientë celularë

Kutia hyrëse e unifikuar është e disponueshme në shumë klientë të postës elektronike celulare, duke përfshirë Gmail. Aplikacioni Gmail mbledh kutinë tuaj hyrëse nga të gjitha llogaritë tuaja të postës elektronike, duke përfshirë Yahoo, Outlook ose shërbime të tjera.

Nëse nuk ju pëlqen aplikacioni i Google, mund të provoni klientët e postës elektronike të palëve të treta si Outlook ose MyMail.

Ndoshta ju keni idetë tuaja se si të gruponi postën në një vend? Ndani në komente.

udhëzime

Hyni në llogarinë tuaj, për këtë, shkoni në lidhjen e mëposhtme http://gmail.com dhe shkruani emrin e përdoruesit dhe fjalëkalimin tuaj.

Klikoni në ikonën e ingranazhit në këndin e sipërm të djathtë të "Llogarive dhe importeve". Pastaj shkoni te seksioni "Dërgo email si" dhe klikoni në lidhjen "Shto adresën tuaj të emailit".

Në dritaren e re që shfaqet, vendosni emrin dhe mbiemrin në të cilin është regjistruar e-maili i shtuar, si dhe adresën e kutisë së postës elektronike. Klikoni në butonin "Hapi tjetër".

Më pas, ekrani do t'ju pyesë se si të dërgoni letra duke përdorur këtë adresë - duke përdorur shërbimin Gmail ose ndërfaqen e postës nga QIP. Këshillohet të specifikoni Gmail, më pak cilësime, prandaj, do të shpenzohet më pak kohë. Klikoni në butonin Veprimi tjetër.

Në dritaren tjetër, ju njoftoheni se pasi të klikoni butonin "Dërgo konfirmimin", do t'ju duhet të kontrolloni emailin e specifikuar në mënyrë që Gmail të jetë i sigurt për vlefshmërinë e adresës së postës elektronike. Klikoni butonin dhe hapni kutinë tuaj postare në një skedë të re.

Rishikoni emailet tuaja të palexuara dhe hapni emailin me titullin "Konfirmimi i Gmail". Klikoni lidhjen për të konfirmuar ekzistencën e kësaj adrese emaili ose kopjoni kodin.

Nëse e keni kopjuar kodin, ngjiteni atë në fushën e zbrazët të dritares "Shto një tjetër ..." dhe kliko butonin "Verifiko". Pas ca kohësh, kjo dritare do të mbyllet automatikisht dhe një e-mail i ri do të shfaqet në listën "Dërgo mail si".

Tani, ngjashëm me atë të përshkruar, duhet të shtoni një adresë të re në bllokun "Mblidhni postë nga llogaritë e tjera". Për ta bërë këtë, klikoni në lidhjen "Shtoni llogarinë tuaj të postës POP3".

Në dritaren e re që shfaqet, shkruani adresën e emailit. Klikoni në butonin Veprimi tjetër. Në dritaren tjetër, duhet të futni një fjalëkalim dhe të aktivizoni opsionet "Përdor gjithmonë një lidhje të sigurt" dhe "Cakto një shkurtore për emailet hyrëse". Pastaj klikoni në butonin "Shto llogari". Pas ca kohësh, kjo dritare do të mbyllet automatikisht dhe një e-mail i ri do të shfaqet në listën "Mblidh mail nga llogari të tjera".

E-mail është bërë një pjesë integrale e jetës së përdoruesve në internet. Ka shumë burime që ofrojnë një kuti postare. Kontrollo shpesh nevojitet Ekzistenca kuti, autenticiteti i tij. Nëse duhet të dini për vërtetësinë e një adrese emaili, atëherë nuk ka asgjë të vështirë për të.

udhëzime

Regjistroni një adresë emaili me të njëjtin emër nëse jeni të interesuar për një email të krijuar në ndonjë burim falas. Një e-mail para-ekzistues nuk mund të regjistrohet përsëri. Të gjithë serverët e njohur të postës janë të pajisur me një sistem kthimi të thirrjeve. Në këtë rast, do të merrni një njoftim gabimi, i cili do t'ju informojë për pamundësinë e regjistrimit të mëtejshëm.

Mundohuni të shkruani një letër nga një email i disponueshëm kuti në emailin e dëshiruar. Mesazhi mund të jetë me ose pa tekst. Dërgojeni dhe kontrolloni pas një kohe e-mail-in tuaj për letrat e dërguara. Nëse jeni njoftuar se letra juaj nuk ka arritur në adresën e dëshiruar, atëherë ndoshta kjo postë nuk ekziston.

Regjistrohuni në rrjetin "Bota ime". Ky është një rrjet social në Runet, në të cilin shumë përdorues komunikojnë. Përdorni kërkimin në llogaritë e përdoruesve të tjerë. Futni e-mailin e dëshiruar në kutinë e kërkimit, e cila ndodhet në këndin e djathtë në krye të faqes së faqes. Mund të klikoni në butonin "Njerëzit". Ju do të çoheni në një kërkim për llogari bazuar në kritere të ndryshme. Mjafton të shkruani e-mailin që ju intereson në fushën që do të gjeni nën emrin "Kërko". Ju duhet të klikoni "Gjeni". Nëse adresa e postës është e vlefshme, atëherë do të shihni informacione për pronarin e postës.

Nëse keni kuti postare në shërbime të tjera postare, konfiguroni një grumbullues poste në mënyrë që të gjitha informacionet të jenë në një vend.

Që kolektori të funksionojë siç duhet, duhet ta konfiguroni atë vetëm nën llogarinë Mail.Ru. Sigurohuni që jeni regjistruar në llogarinë tuaj Mail.Ru përpara se të filloni të grumbulloni email nga shërbimet e tjera të postës.

Për të shtuar një kuti:

  1. Klikoni në logon e shërbimit në të cilin keni kutinë. Nëse shërbimi juaj nuk është në listë, klikoni "Post tjetër".
  2. Futni emrin e kutisë postare dhe fjalëkalimin në të, klikoni "Shto". Nëse shihni një mesazh gabimi, kontrolloni saktësinë e të dhënave të futura dhe provoni përsëri. Nëse informacioni është i saktë, do të merrni një konfirmim dhe mund të vazhdoni të konfiguroni grumbulluesin e postës.

Varësisht se cili protokoll mbështet shërbimin në të cilin ndodhet kutia postare, cilësimi mund të ndryshojë:

IMAP

  1. Specifikoni se në cilën dosje dëshironi të zhvendosni shkronjat dhe klikoni "Ruaj".
  2. Nëse keni dosje personale në kutinë postare nga e cila do të mbledhni postën, ato do t'i bashkëngjiten dosjes së zgjedhur.

Dosjet e sistemit janë gjithashtu të sinkronizuara: Draftet, Artikujt e dërguar, Spam dhe Koshi. Nëse do të importoni mesazhe nga një kuti postare e palës së tretë në dosjen e Inbox, specifikoni nëse dëshironi të aplikoni filtra të konfiguruar në kutinë postare aktuale për mesazhet në hyrje.

Nëse koleksioni i letrave është konfiguruar duke përdorur protokollin IMAP, do të mund t'u përgjigjeni letrave nga kutia postare në të cilën është dërguar letra.

POP3

  1. Vendosni kutinë e zgjedhjes "Të gjitha postat" për të importuar të gjitha letrat nga kutia postare. Nëse dëshironi të shënoni të gjitha emailet e importuara si të lexuara, kontrolloni kutinë e kontrollit Shënoni të gjitha emailet e vjetra si të lexuara.
  2. Zgjidhni se në cilën dosje dëshironi të vendosni letra nga kjo kuti postare. Nëse dëshironi të krijoni një dosje të re, kontrolloni kutinë nën listën rënëse dhe shkruani emrin e dosjes.
  3. Për të aplikuar filtrat që janë konfiguruar në kutinë postare në mesazhe nga serverë të tjerë, kontrolloni kutinë pranë "Aplikoni filtrat për mesazhet e marra".
  4. Klikoni "Ruaj".

Kështu, mund të specifikoni deri në 9 kuti postare nga të cilat do të mblidhen letra. Për të çaktivizuar grumbulluesin e postës, vendoseni çelësin në pozicionin OFF. Nëse dëshironi të modifikoni cilësimet, klikoni "Ndrysho". Për të hequr një koleksionist, klikoni Hiq.

Ky artikull do të fokusohet në atë që janë "posta nga kutitë e tjera postare" dhe "mbledhja e letrave nga llogari të tjera". Rishikime dhe krahasime të shërbimeve postare.

Ndërsa funksionaliteti i shërbimeve të postës është përditësuar, ne do të publikojmë lajme në fund të këtij artikulli.

Shërbimi i postës Mail.ru, motorët e kërkimit Yandex dhe Google kanë ofruar funksione shumë të dobishme dhe të nevojshme për disa vite, gjë që ju lejon të kombinoni të gjitha llogaritë e tjera të postës elektronike në një postë. Me fjalë të tjera, ia vlen të shtoni dhe konfiguroni të gjitha "mailet" tuaja një herë, dhe do të jetë e mundur t'i menaxhoni ato në një dritare pa futur vazhdimisht një emër përdoruesi dhe fjalëkalim.

Shërbimet e postës na ofrojnë një hapësirë ​​të madhe ruajtjeje për të gjitha emailet hyrëse, një ndërfaqe miqësore për përdoruesit, funksionalitet të mirë menaxhimi dhe shumë më tepër. Për të testuar aftësitë e shërbimeve postare të listuara, ne do të theksojmë tre parametra për të vlerësuar punën e tyre: 1) ju duhet të menaxhoni llogari të ndryshme të postës elektronike, duke përfshirë nga shërbime dhe sajte të ndryshme, përmes një klienti poste; 2) të ketë një nënshkrim dhe emër personal për çdo postë; 3) fshini letrat nga serverët e atyre llogarive postare që janë shtuar në postë, yandex ose google mail.

Detyra jonë duket si kjo:

Pra, le të fillojmë. Ne jemi të parët që testojmë shërbimin nga Mail.ru, i cili na thotë: "Ju mund të mbledhni postë nga të gjitha kutitë tuaja postare në një kuti postare në Mail.ru.

Konfiguro koleksionin e emaileve nga çdo server duke përdorur protokollin IMAP ose POP3. Për të shtuar postë të jashtme përveç @mail, @inbox, @list, @bk, duhet të keni të paktën një postë që është tashmë e disponueshme në serverët e listuar nga posta. Me fjalë të tjera, fillimisht regjistroni postën elektronike dhe më pas shtoni llogari të tjera postare. Procesi i regjistrimit për postë është i thjeshtë, nuk ka kuptim ta përshkruajmë atë, por ne do të përshkruajmë shtimin e emaileve të tjera në këtë llogari postare.


Më pas, do t'ju kërkohet të vendosni hyrjen dhe fjalëkalimin tuaj nga çdo kuti postare që përdorni, dhe brenda 3-5 minutash "Grumbulluesi i postës nga posta" do të krijojë një dosje me emrin e postës së shtuar pranë dosjeve "hyrje". "dërguar", "spam" dhe të tjera.


Në fakt, mbledhësi i letrave do të fillojë të punojë brenda 10-15 minutash dhe do t'i shtojë të gjitha letrat në dosjen e krijuar rishtazi nga kutia postare që specifikuat. Të gjitha letrat hyrëse për një e-mail të ri do të vijnë në këtë dosje, gjithashtu do të bëhet e mundur dërgimi i letrave nga kutia postare e bashkangjitur. Kur krijoni një letër të re, do të shfaqet fusha "Nga", në të cilën mund të zgjidhni se nga cila kuti postare do të dërgohet letra.


Pluset e shërbimit të postës Mail.ru përfshijnë thjeshtësinë e shtimit dhe lehtësinë e konfigurimit të kutive të tjera postare, mungesën e nevojës për të specifikuar protokolle të ndryshme (POP3, SMTP). Kjo është shumë e rëndësishme sepse jo çdo përdorues e di se çfarë është.

Disavantazhet e Mail.ru janë se është e pamundur të caktoni një emër dhe nënshkrim për secilën postë të shtuar rishtazi (çdo e-mail të ri, përveç atij kryesor), domethënë, emri dhe nënshkrimi i postës kryesore do të shpërndahet në çdo adresë dhe kaq. Një pengesë tjetër e madhe është se kur ngarkoni mesazhe në postë, nuk ka asnjë mënyrë për të fshirë automatikisht mesazhet origjinale nga serveri i bashkangjitur i kutisë postare. Pse është kaq e rëndësishme të fshini mesazhet nga serveri i kutisë postare të shtuar? Kjo do të shmangë plotësimin e postës së bashkangjitur, sepse Llogaritë e jashtme të postës elektronike janë zakonisht shumë të vogla për të ruajtur emailet. Për shembull, nëse hapësira e postës në një llogari të jashtme është e plotë, Mail.ru nuk do të shfaqë asnjë shkronjë të re derisa të hyni në ndërfaqen e postës së jashtme dhe të fshini drejtpërdrejt letrat prej andej për të liruar hapësirë. Plus, ne e lidhim postën me Mail me shpresën për të marrë shumë hapësirë ​​ruajtëse për postën tonë, e cila mund të jetë e kufizuar nga burimet e pritjes. Kështu, përkundër faktit se Mail.ru ofron një vëllim pothuajse të pakufizuar të kutisë postare, kur shtoni postë nga një zonë tjetër domeni (për shembull), burimet tuaja të postës elektronike të shtuar nuk do të rriten në Mail.ru, por do të vazhdojnë të të kufizohet nga pritja e burimeve (në rastin tonë, burimet primer.ru).

Mundësia për të shtuar postë të tjera në shërbimin e postës nuk i përshtatej detyrës sonë në dy pika nga tre, duke arritur në një pikë.


Vërtetë, Mail.ru ka një mënyrë tjetër për të shtuar postë të jashtme, ose më saktë, lidhjen ose hyrjen në postë të jashtme. Duket kështu:


Kjo metodë nuk është e përshtatshme për detyrën tonë, pasi nuk është një koleksionist poste, por një mënyrë përdoruesi që lidhet me postën dhe ngarkon të gjitha dosjet dhe letrat në ndërfaqen e postës çdo herë. Por këtu është e mundur të shtoni një nënshkrim dhe emër personal për secilën postë, është e mundur të dërgoni letra nga posta e konfiguruar. Fshirja e mesazheve nga kutitë postare të ngarkuara nuk funksionon, sepse nuk është një koleksionist poste.

E rëndësishme! Disa përdorues gabimisht mendojnë se nëse shkronjat shfaqen në postë, atëherë posta nga e cila ka ndodhur shkarkimi mund të pastrohet. Vini re përsëri se Mail.ru funksionon si shikues i postës, dhe nëse pastroni postën, ajo do të fshihet si në kutinë postare kryesore ashtu edhe në postë.

Subjekti i dytë i testimit është Yandex me koleksionistin e tij të postës. Detyrat janë të ngjashme: mbledhni postën, caktoni një nënshkrim dhe emër për secilën postë dhe fshini të gjithë postën nga kutia postare e shtuar.

Koleksionisti i postës Yandex është konfiguruar në një mënyrë të ngjashme, por nëse posta është e lidhur nga ndonjë sit, për shembull site.ru, atëherë do të duhet të specifikohen cilësime shtesë, shihni pamjen e ekranit.


Shërbimi Mail e bëri këtë punë për ne, ndërsa Yandex ofron të vendosë manualisht të gjitha cilësimet nga posta e palëve të treta. Nuk ka asgjë të komplikuar këtu: në fushën e hyrjes, shkruani emrin e plotë të postës (), në fushën e serverit, futni vetëm domenin (site.ru), është më mirë të lini të gjitha cilësimet e tjera si parazgjedhje, ose të ndryshoni nëse ju e dini se çfarë jeni duke bërë. Pas shtimit të suksesshëm të postës, do të shfaqet mesazhi i mëposhtëm:


Ndryshe nga mbledhësi i postës, Yandex ofron të zgjedhë nëse do të ruani origjinalet e letrave në kutinë postare të shtuar apo jo. Në çdo gjë tjetër, mbledhësi i postës Yandex punon në mënyrë të ngjashme me Mail.ru, është e mundur të zgjidhni një kuti postare nga e cila të dërgoni një letër. Por Yandex ka të njëjtin problem me nënshkrimin e shkronjave: nuk ka asnjë mënyrë për të vendosur një emër dhe nënshkrim individual për secilën kuti postare të shtuar.


Duke gjykuar nga navigimi, ekziston mundësia e shtimit të një nënshkrimi individual për secilën kuti postare, por në realitet nuk funksionon. Ne zgjedhim postën, shkruajmë emrin dhe nënshkrimin, klikojmë ruaj. Kjo është e gjitha, nënshkrimi ruhet dhe funksionon, por ruhet edhe për të gjitha kutitë e tjera postare, domethënë, duke caktuar një emër dhe nënshkrim në një kuti postare, ju i ndryshoni automatikisht këto parametra në të gjitha postat e kombinuara në Yandex. Edhe nëse zgjidhni ndonjë kuti tjetër, nënshkrimi tani do të jetë i njëjtë kudo.

Në total, Yandex u përball me sukses me mbledhjen dhe renditjen e postës, mund të fshijë origjinalet e letrave nga kutia postare e shtuar, por nuk mund të punojë me nënshkrime! Mbledhësi i postës nga Yandex nuk e përballoi detyrën tonë dhe shënon dy pikë nga tre.


Dëshiroj të theksoj se, pasi ka "rrëmuar" në të tre shërbimet për montimin e letrave, duket se Mail ka "shuplakuar" funksionalitetin e saj me nxitim. Edhe pse do të kënaqë shumicën e përdoruesve, për të qenë i sinqertë, Mail krijoi një koleksionist postash për shfaqje, për të parë garën konkurruese. Gjithçka funksionon mirë dhe pa dështime, por koleksionisti nga Mail nuk e përballoi detyrën tonë. Ekzistojnë disa njësi reklamash në ndërfaqen e postës, por ato nuk ndërhyjnë në punën me letra.

Sa i përket Yandex, i cili krijoi koleksionistin e letrave shumë kohë më parë, duket se kjo industri e veçantë nuk mbështetet, sepse rregullimi i një funksioni kaq të thjeshtë (aftësia për të shtuar nënshkrime të shumta për kutitë postare) nuk duhet të jetë e vështirë për një motor kërkimi kaq të fuqishëm. . Sidoqoftë, Yandex ka një funksion tjetër unik që ju lejon të lidhni domenet me serverët e tyre dns, dhe më pas të krijoni dhe konfiguroni postën. Por operacione dhe cilësime të tilla kërkojnë njohuri dhe kohë. Dhe megjithëse nuk ka asgjë të komplikuar atje, në çdo rast, nuk është për shumicën e përdoruesve të internetit rus. Avantazh i madh- nuk ka reklama në ndërfaqen e postës Yandex! Minus- Kufizoni në grumbullues letrash në 10 kuti postare.

Finalisti dhe fituesi është një mbledhës letrash nga Google, i cili e përballoi detyrën tonë me zhurmë, pavarësisht se madje kufiri prej 5 kuti

Kohët e fundit, versioni tjetër i Mail.Ru Mail për iPhone dhe iPad është lëshuar. Përditësimi kryesor është një, por domethënës: është aftësia për të mbledhur të gjitha kutitë postare të përdoruesit në një vend, përkatësisht në aplikacionin Mail.Ru Mail.

Të gjitha postat në një vend. Shumica prej nesh kanë disa email - për punë, për regjistrim në të gjitha llojet e forumeve, faqet e kuponave dhe dyqanet online, dhe për shpirtin (lexoni - për të komunikuar me miqtë, të afërmit, etj.). Në versionin e mëparshëm të aplikacionit Mail.Ru, zhvilluesit hodhën hapin e parë drejt thjeshtimit të menaxhimit të "kopshtit zoologjik" të llogarive: ata shtuan mbështetje për kuti postare të shumta.

Tani, në klientin Mail.Ru Mail, mund të punoni jo vetëm me kuti postare në këtë shërbim, por edhe me llogaritë e Gmail, Rambler, Outlook dhe ofruesve të tjerë që mbështesin IMAP / POP3. Ndërrimi midis kutive është shumë i thjeshtë - është çështje e një klikimi. Ndërsa një përdorues po shfleton një llogari, të tjerët presin me durim radhën e tyre.

Aplikacioni nuk e riorganizon rendin në kuti të ndryshme në mënyrën e vet. Në secilën prej llogarive, mund të vazhdoni të ndiqni saktësisht logjikën e punës me të cilën keni arritur të mësoheni. Për shembull, në ndërfaqen e aplikacionit Mail.Ru, emrat dhe struktura e dosjeve, kutive të kontrollit dhe cilësimet e tjera të kutisë postare në Gmail do të mbeten të njëjta si në versionin e madh të Gmail. Përveç kësaj, në aplikacion, ju mund të konfiguroni individualisht secilën prej llogarive: vendosni një nënshkrim, aktivizoni ose çaktivizoni shfaqjen e ikonave, konfiguroni funksionimin e sistemit të njoftimit shtytës.


Njoftimet me shtytje. Njoftimet e avancuara shtytëse meritojnë një përmendje të veçantë. Së pari (dhe ky është një nga shpërblimet kryesore të aplikacionit), ato mund të aktivizohen edhe për llogaritë në ato shërbime që nuk mund të dërgojnë shtytje.

Së dyti, ato mund të konfigurohen saktësisht ashtu siç dëshironi, duke specifikuar në detaje se në cilën orë vijnë dhe çfarë të raportoni. Është e mundur të shënoni adresuesit me emër, mesazhe nga të cilat jeni gati të lexoni ditë e natë (për shembull, letra nga nëna juaj), ose rreptësisht nga ora 9 deri në 19:00 (ka shumë të ngjarë, këto do të jenë letra nga klientët ose kolegët). Mund të aktivizoni ose çaktivizoni sinjalizimet për llogari, dosje ose marrës të veçantë.

Zhvilluesit kanë siguruar me kujdes një buton që ju lejon të çaktivizoni menjëherë njoftimet për postimet nga rrjetet sociale ose shërbimet e kuponit. Ju gjithashtu mund të vendosni përmbajtjen e njoftimeve shtytëse: ndoshta, për arsye privatësie, dëshironi të fshehni emrin e marrësit ose subjektin e letrës.

Veprime të shpejta. Për punë të përshtatshme me shkronja në aplikacion ekziston një menu me veprime të shpejta. Për të thirrur këta butona magjikë, ju vetëm duhet të rrëshqitni nga e djathta në të majtë në mesazhin e dëshiruar në listën e shkronjave. Me ndihmën e tyre, ju mund të fshini një letër, të vendosni një shenjë, ta zhvendosni atë në një dosje tjetër, ta dërgoni në postë të padëshiruar, etj. Të gjitha veprimet kryhen me një klik.

Avatarët e adresuesit dhe të shërbimit do t'ju ndihmojnë të lundroni në postën tuaj. Ato janë të dukshme në listën e emaileve, kur lexoni dhe shkruani email, dhe, siç u përmend tashmë, në njoftimet push. Kur lexon dhe shkruan një letër, përdoruesi sheh avatarin e dërguesit ose të adresuarit, si dhe një pamje paraprake të bashkëngjitjeve. Nëse fotot ose vizatimet janë bashkangjitur, shfaqen miniaturat e imazheve. Nga rruga, ju mund të shikoni bashkëngjitjet pa u larguar nga arka, d.m.th. pikërisht në aplikacion.

Caching. Caching do të jetë shumë i dobishëm në ato vende ku interneti nuk është shumë i mirë, për shembull, në metro. Pronari i një smartphone me klientin e postës Mail.Ru do të jetë në gjendje të lexojë tekste dhe të shikojë foto edhe në mungesë të një rrjeti.

Këshilla. Aplikacioni ju kërkon emailin e dëshiruar, duhet të futni shkronjat e para në shiritin e adresave (me kusht që t'i keni shkruar këtij adresuesi të paktën një herë - nuk ka rëndësi në versionin kryesor të Mail ose në aplikacion). Përveç kësaj, klienti, me kërkesën tuaj, do të shtojë kontakte nga telefoni në listën e të anketuarve.

Le të jemi objektivë - aplikacioni i postës Mail.Ru është bërë që të zgjasë. Dhe nëse më parë përdorni shtytje të zbukuruara, shijoni avatarët në listën e shkronjave, etj. ishte e mundur vetëm nëse do të kishte një kuti postare në Mail.Ru, por tani përdoruesit e të njëjtës Mail.Ru do të jenë në gjendje të mbledhin pjesën tjetër të kutive postare në aplikacion (dhe ata që preferojnë shërbime të tjera, të paktën të testojnë klientin) .

Unë vazhdoj një seri artikujsh rreth funksionit të mbledhjes së postës në një kuti kryesore të postës elektronike nga çdo tjetër që ndodhet në çdo shërbim postar. Në artikullin e fundit, ne folëm për vendosjen e mbledhjes së postës në shërbimin Yandex, i cili është aq i lehtë sa granatimi i dardhave. Dhe në këtë artikull do të flas se si të bëjmë të njëjtën gjë në një shërbim tjetër, jo më pak të popullarizuar sot - Mail.ru, ku shumë ende mbajnë kutinë e tyre kryesore të postës elektronike, pavarësisht nga fakti se, për shembull, shërbimi GMail ka të qartë avantazhet (kam përshkruar konfigurimin e mbledhjes së postës në Gmail). Por siç thonë ata, për secilin të tijën dhe ndonjëherë është thjesht çështje zakoni :)

Vendosja e mbledhjes së postës në shërbimin Mail.ru është aq e lehtë sa, për shembull, në Yandex. Vetëm disa hapa të thjeshtë dhe gjithçka do të jetë gati, posta do të fillojë të rrjedhë nga kutitë postare që keni lidhur me një, në Mail.

Procesi i konfigurimit të mbledhjes së postës në shërbimin Mail.ru

Para së gjithash, hyni në llogarinë tuaj në Mail, ku do të mbledhni postë nga kutitë e tjera të postës elektronike dhe do të hapni seksionin "Letrat" ​​(posta ndodhet atje).

Tani duhet të shkoni te cilësimet e postës. Për ta bërë këtë, klikoni butonin "Më shumë" në krye dhe zgjidhni "Cilësimet".

Ju gjithashtu mund të hapni cilësimet duke klikuar në këndin e sipërm djathtas në adresën tuaj të emailit dhe më pas duke zgjedhur "Cilësimet e postës".

Pastaj shkoni te seksioni "Posta nga kutitë e tjera postare".

Dritarja e parë e lidhjes së kutisë së dytë të postës elektronike do të hapet.

Më lejoni t'ju kujtoj se kutia e dytë e postës elektronike nga e cila dëshironi të mbledhni letra mund të gjendet në çdo shërbim, jo ​​vetëm në Mail!

Në shembullin për këtë artikull, ne do të shqyrtojmë lidhjen e një kuti postare të vendosur në Yandex.

Në këtë dritare, duhet të specifikoni emrin e përdoruesit dhe fjalëkalimin për postën që po lidhni. Nëse kutia postare që lidhni ndodhet në një nga shërbimet e listuara më poshtë, atëherë klikoni butonin e duhur në krye, futni adresën e plotë të postës së lidhur më poshtë dhe klikoni "Shto kutinë postare":

Nëse kutia postare që dëshironi të lidhni ndodhet në ndonjë shërbim tjetër (jo nga lista e mësipërme), atëherë klikoni butonin "Postë tjetër" në krye, pas së cilës duhet të futni adresën e plotë të postës së lidhur, fjalëkalimin prej saj dhe klikoni "Shto kutinë postare".

Nëse nuk e keni futur ende postën tuaj të dytë në këtë shfletues, të cilin po e lidhni, atëherë në dritaren tjetër do t'ju duhet të shkruani emrin e përdoruesit dhe fjalëkalimin nga ai. Shembull:

Pas kësaj, klikoni "Lejo" (ju lejoni që posta në Mail.ru të përdorë disa nga të dhënat e postës së dytë të lidhur).

Nëse gjithçka shkoi mirë, do të merrni një mesazh se koleksionisti është shtuar. Tani duhet të zgjidhni se cilën dosje do të mbledhni postën: në një dosje të krijuar posaçërisht me emrin e postës që keni lidhur ose në kutinë hyrëse. Varet nga ju të vendosni, por, për mendimin tim, është më i përshtatshëm kur posta e mbledhur nga një kuti postare tjetër shkon në një dosje të veçantë. Në një mënyrë ose në një tjetër, atëherë kjo mund të konfigurohet duke filtruar shkronjat.

Opsioni "Aplikoni filtrat për emailet e pranuara" do të thotë që të gjithë filtrat që keni konfiguruar tashmë në postën kryesore në Mail do të zbatohen gjithashtu për postën e marrë nga kutia postare e lidhur. Çaktivizimi apo jo varet nga ju.

Kjo është ajo, mbledhësi i letrave është ngritur! Tani, brenda pak minutash (ndonjëherë procesi vonohet nëse ka shumë shkronja në postën e lidhur), posta nga kutia e dytë postare do të fillojë të rrjedhë në atë kryesore.

Në këtë mënyrë, ju mund të lidhni sa më shumë postë që dëshironi të grumbulloni.

Si të shihni veçmas të gjitha letrat nga posta e lidhur?

Ju mund t'i shikoni letrat veçmas nëse, kur vendosni koleksionin e postës në Mail, keni treguar që letrat duhet të mblidhen në një dosje të veçantë me emrin e kutisë postare të lidhur. Në këtë rast, hapni këtë dosje dhe do të shihni të gjitha shkronjat që ju nevojiten. Shembull:

Nëse nuk e keni konfiguruar menjëherë marrjen e letrave në një dosje të veçantë, mund ta konfiguroni atë në çdo kohë duke hapur kolektorin e krijuar (më shumë për këtë më poshtë).

Konfigurimi i grumbulluesit të letrave të krijuara, çaktivizimi dhe aktivizimi i tij

Ndonjëherë mund t'ju duhet të bëni ndryshime në cilësimet e grumbulluesit të postës që keni krijuar në Mail, dhe gjithashtu ta çaktivizoni atë ose ta aktivizoni përsëri.

Kjo mund të bëhet në të njëjtin seksion "Cilësimet" - "Email nga kutitë e tjera postare", ku fillimisht keni krijuar koleksionistin tuaj të postës.

Këtu do të shihni kolektorin e krijuar. Nëse dëshironi ta fikni ose ndizni përsëri, klikoni në çelësin përkatës. Nëse keni nevojë të hapni cilësimet e kolektorit, klikoni "Ndrysho".

Dhe do të hapen të njëjtat cilësime për koleksionistin e shkronjave, si në fazën e krijimit të tij (shih).

Ky artikull do të fokusohet në atë që janë "posta nga kutitë e tjera postare" dhe "mbledhja e letrave nga llogari të tjera". Rishikime dhe krahasime të shërbimeve postare.

Ndërsa funksionaliteti i shërbimeve të postës është përditësuar, ne do të publikojmë lajme në fund të këtij artikulli.

Shërbimi i postës Mail.ru, motorët e kërkimit Yandex dhe Google kanë ofruar funksione shumë të dobishme dhe të nevojshme për disa vite, gjë që ju lejon të kombinoni të gjitha llogaritë e tjera të postës elektronike në një postë. Me fjalë të tjera, ia vlen të shtoni dhe konfiguroni të gjitha "mailet" tuaja një herë, dhe do të jetë e mundur t'i menaxhoni ato në një dritare pa futur vazhdimisht një emër përdoruesi dhe fjalëkalim.

Shërbimet e postës na ofrojnë një hapësirë ​​të madhe ruajtjeje për të gjitha emailet hyrëse, një ndërfaqe miqësore për përdoruesit, funksionalitet të mirë menaxhimi dhe shumë më tepër. Për të testuar aftësitë e shërbimeve postare të listuara, ne do të theksojmë tre parametra për të vlerësuar punën e tyre: 1) ju duhet të menaxhoni llogari të ndryshme të postës elektronike, duke përfshirë nga shërbime dhe sajte të ndryshme, përmes një klienti poste; 2) të ketë një nënshkrim dhe emër personal për çdo postë; 3) fshini letrat nga serverët e atyre llogarive postare që janë shtuar në postë, yandex ose google mail.

Detyra jonë duket si kjo:

Pra, le të fillojmë. Ne jemi të parët që testojmë shërbimin nga Mail.ru, i cili na thotë: "Ju mund të mbledhni postë nga të gjitha kutitë tuaja postare në një kuti postare në Mail.ru.

Konfiguro koleksionin e emaileve nga çdo server duke përdorur protokollin IMAP ose POP3. Për të shtuar postë të jashtme përveç @mail, @inbox, @list, @bk, duhet të keni të paktën një postë që është tashmë e disponueshme në serverët e listuar nga posta. Me fjalë të tjera, fillimisht regjistroni postën elektronike dhe më pas shtoni llogari të tjera postare. Procesi i regjistrimit për postë është i thjeshtë, nuk ka kuptim ta përshkruajmë atë, por ne do të përshkruajmë shtimin e emaileve të tjera në këtë llogari postare.

Më pas, do t'ju kërkohet të vendosni hyrjen dhe fjalëkalimin tuaj nga çdo kuti postare që përdorni, dhe brenda 3-5 minutash "Grumbulluesi i postës nga posta" do të krijojë një dosje me emrin e postës së shtuar pranë dosjeve "hyrje". "dërguar", "spam" dhe të tjera.

Në fakt, mbledhësi i letrave do të fillojë të punojë brenda 10-15 minutash dhe do t'i shtojë të gjitha letrat në dosjen e krijuar rishtazi nga kutia postare që specifikuat. Të gjitha letrat hyrëse për një e-mail të ri do të vijnë në këtë dosje, gjithashtu do të bëhet e mundur dërgimi i letrave nga kutia postare e bashkangjitur. Kur krijoni një letër të re, do të shfaqet fusha "Nga", në të cilën mund të zgjidhni se nga cila kuti postare do të dërgohet letra.

Pluset e shërbimit të postës Mail.ru përfshijnë thjeshtësinë e shtimit dhe lehtësinë e konfigurimit të kutive të tjera postare, mungesën e nevojës për të specifikuar protokolle të ndryshme (POP3, SMTP). Kjo është shumë e rëndësishme sepse jo çdo përdorues e di se çfarë është.

Disavantazhet e Mail.ru janë se është e pamundur të caktoni një emër dhe nënshkrim për secilën postë të shtuar rishtazi (çdo e-mail të ri, përveç atij kryesor), domethënë, emri dhe nënshkrimi i postës kryesore do të shpërndahet në çdo adresë dhe kaq. Një pengesë tjetër e madhe është se kur ngarkoni mesazhe në postë, nuk ka asnjë mënyrë për të fshirë automatikisht mesazhet origjinale nga serveri i bashkangjitur i kutisë postare. Pse është kaq e rëndësishme të fshini mesazhet nga serveri i kutisë postare të shtuar? Kjo do të shmangë plotësimin e postës së bashkangjitur, sepse Llogaritë e jashtme të postës elektronike janë zakonisht shumë të vogla për të ruajtur emailet. Për shembull, nëse hapësira e postës në një llogari të jashtme është e plotë, Mail.ru nuk do të shfaqë asnjë shkronjë të re derisa të hyni në ndërfaqen e postës së jashtme dhe të fshini drejtpërdrejt letrat prej andej për të liruar hapësirë. Plus, ne e lidhim postën me Mail me shpresën për të marrë shumë hapësirë ​​ruajtëse për postën tonë, e cila mund të jetë e kufizuar nga burimet e pritjes. Kështu, përkundër faktit se Mail.ru ofron një vëllim pothuajse të pakufizuar të kutisë postare, kur shtoni postë nga një zonë tjetër domeni (për shembull, [email i mbrojtur]), burimet tuaja të postës elektronike të shtuara nuk do të rriten në Mail.ru, por do të vazhdojnë të kufizohen nga burimet e pritjes (në rastin tonë, burimet primer.ru).

Mundësia për të shtuar postë të tjera në shërbimin e postës nuk i përshtatej detyrës sonë në dy pika nga tre, duke arritur në një pikë.

Vërtetë, Mail.ru ka një mënyrë tjetër për të shtuar postë të jashtme, ose më saktë, lidhjen ose hyrjen në postë të jashtme. Duket kështu:

Kjo metodë nuk është e përshtatshme për detyrën tonë, pasi nuk është një koleksionist poste, por një mënyrë përdoruesi që lidhet me postën dhe ngarkon të gjitha dosjet dhe letrat në ndërfaqen e postës çdo herë. Por këtu është e mundur të shtoni një nënshkrim dhe emër personal për secilën postë, është e mundur të dërgoni letra nga posta e konfiguruar. Fshirja e mesazheve nga kutitë postare të ngarkuara nuk funksionon, sepse nuk është një koleksionist poste.

E rëndësishme! Disa përdorues gabimisht mendojnë se nëse shkronjat shfaqen në postë, atëherë posta nga e cila ka ndodhur shkarkimi mund të pastrohet. Vini re përsëri se Mail.ru funksionon si shikues i postës, dhe nëse pastroni postën, ajo do të fshihet si në kutinë postare kryesore ashtu edhe në postë.

Subjekti i dytë i testimit është Yandex me koleksionistin e tij të postës. Detyrat janë të ngjashme: mbledhni postën, caktoni një nënshkrim dhe emër për secilën postë dhe fshini të gjithë postën nga kutia postare e shtuar.

Koleksionisti i postës Yandex është konfiguruar në një mënyrë të ngjashme, por nëse posta është e lidhur nga ndonjë sit, për shembull site.ru, atëherë do të duhet të specifikohen cilësime shtesë, shihni pamjen e ekranit.

Shërbimi Mail e bëri këtë punë për ne, ndërsa Yandex ofron të vendosë manualisht të gjitha cilësimet nga posta e palëve të treta. Nuk ka asgjë të komplikuar këtu: në fushën e hyrjes, shkruani emrin e plotë të postës ( [email i mbrojtur]), në fushën e serverit, futni vetëm domenin (site.ru), është më mirë të lini të gjitha cilësimet e tjera si parazgjedhje, ose të ndryshoni nëse e dini se çfarë po bëni. Pas shtimit të suksesshëm të postës, do të shfaqet mesazhi i mëposhtëm:

Ndryshe nga mbledhësi i postës, Yandex ofron të zgjedhë nëse do të ruani origjinalet e letrave në kutinë postare të shtuar apo jo. Në çdo gjë tjetër, mbledhësi i postës Yandex punon në mënyrë të ngjashme me Mail.ru, është e mundur të zgjidhni një kuti postare nga e cila të dërgoni një letër. Por Yandex ka të njëjtin problem me nënshkrimin e shkronjave: nuk ka asnjë mënyrë për të vendosur një emër dhe nënshkrim individual për secilën kuti postare të shtuar.

Duke gjykuar nga navigimi, ekziston mundësia e shtimit të një nënshkrimi individual për secilën kuti postare, por në realitet nuk funksionon. Ne zgjedhim postën, shkruajmë emrin dhe nënshkrimin, klikojmë ruaj. Kjo është e gjitha, nënshkrimi ruhet dhe funksionon, por ruhet edhe për të gjitha kutitë e tjera postare, domethënë, duke caktuar një emër dhe nënshkrim në një kuti postare, ju i ndryshoni automatikisht këto parametra në të gjitha postat e kombinuara në Yandex. Edhe nëse zgjidhni ndonjë kuti tjetër, nënshkrimi tani do të jetë i njëjtë kudo.

Në total, Yandex u përball me sukses me mbledhjen dhe renditjen e postës, mund të fshijë origjinalet e letrave nga kutia postare e shtuar, por nuk mund të punojë me nënshkrime! Mbledhësi i postës nga Yandex nuk e përballoi detyrën tonë dhe shënon dy pikë nga tre.

Dëshiroj të theksoj se, pasi ka "rrëmuar" në të tre shërbimet për montimin e letrave, duket se Mail ka "shuplakuar" funksionalitetin e saj me nxitim. Edhe pse do të kënaqë shumicën e përdoruesve, për të qenë i sinqertë, Mail krijoi një koleksionist postash për shfaqje, për të parë garën konkurruese. Gjithçka funksionon mirë dhe pa dështime, por koleksionisti nga Mail nuk e përballoi detyrën tonë. Ekzistojnë disa njësi reklamash në ndërfaqen e postës, por ato nuk ndërhyjnë në punën me letra.

Sa i përket Yandex, i cili krijoi koleksionistin e letrave shumë kohë më parë, duket se kjo industri e veçantë nuk mbështetet, sepse rregullimi i një funksioni kaq të thjeshtë (aftësia për të shtuar nënshkrime të shumta për kutitë postare) nuk duhet të jetë e vështirë për një motor kërkimi kaq të fuqishëm. . Sidoqoftë, Yandex ka një funksion tjetër unik që ju lejon të lidhni domenet me serverët e tyre dns, dhe më pas të krijoni dhe konfiguroni postën. Por operacione dhe cilësime të tilla kërkojnë njohuri dhe kohë. Dhe megjithëse nuk ka asgjë të komplikuar atje, në çdo rast, nuk është për shumicën e përdoruesve të internetit rus. Avantazh i madh- nuk ka reklama në ndërfaqen e postës Yandex! Minus- Kufizoni në grumbullues letrash në 10 kuti postare.

Finalisti dhe fituesi është një mbledhës letrash nga Google, i cili e përballoi detyrën tonë me zhurmë, pavarësisht se madje kufiri prej 5 kuti

Sigurisht, gjithçka duhet të paralelizohet. Këtu hyn në lojë biblioteka ime e preferuar TPL DataFlow.

Ne do të mbledhim postë duke përdorur POP3. Të gjitha "gjërat në modë" të IMAP në këtë detyrë janë të tepërta - ju duhet të zgjidhni burimin e letrës sa më shpejt dhe me lehtësi dhe ta fshini atë në server. POP3 mjafton për sytë këtu. Ne përdorim OpenPop.NET.

Si një veçori opsionale, ne do të shtrëngojmë monitorimin në Zabbix. (Ne do të punojmë 24/7 dhe do të japim shpejtësinë e lavdëruar - ju duhet ta monitoroni këtë).

Shkoni

Le të krijojmë një aplikacion të rregullt konsol. Hapni konsolën NuGet dhe instaloni të gjitha paketat e nevojshme:

Install-Package Nlog Install-Package OpenPop.NET Install-Package TopShelf Install-Package Microsoft.TPL.DataFlow
Shkoni te dosja e projektit, krijoni App.Debug.config dhe App.Release.config. Shkarkoni projektin nga studio, hapni kodin e tij (në tekstin e mëtejmë, TopCrawler.csproj). Shtoni në seksionin me konfigurimin:

Konfigurimet

App.config App.config


Dhe më poshtë është objektivi i personalizuar për MSBuild:

Transformoni objektivin

$ (TargetFileName) .config


Personalisht, jam mësuar në këtë mënyrë - në mënyrën e vjetër - për të shtuar transformimin e konfigurimeve në mjedise të veçanta.
Për lehtësi, unë sugjeroj konfigurime të tipit të fortë. Një klasë e veçantë do të lexojë konfigurimin. (Mund të flisni për aspektet teorike të një zgjidhjeje të tillë në komente). Konfigurimet, regjistrat, monitorimi janë një arsye e shkëlqyer për të zbatuar modelin Singleton.

Krijo një dosje me të njëjtin emër në projekt (duhet të ketë një urdhër). Brenda, ne krijojmë 3 klasa - Config, Logger, Zabbix. Logeri ynë:

Logger

Klasa statike Logger (Regjistri publik statik NLog.Logger (merr; grup privat;) Arkivi publik statik NLog.Logger (merr; grup privat;) statik Logger () (Log = LogManager.GetLogger ("Global"); Arkivi = LogManager. GetLogger ("Archivator");))


Monitorimi me Zabbix meriton një postim të veçantë, kështu që unë thjesht do ta lë klasën që zbaton agjentin këtu:

Zabbix

hapësira e emrave TopCrawler.Singleton (///

/// Singleton: zabbix sender class /// klasa statike Zabbix (Dërguesi statik publik ZabbixSender (merr; grup privat;) statik Zabbix () (Dërguesi = ZabbixSender i ri (Config.ZabbixServer, Config.ZabbixPort);)) struct ZabbixItem (Vlera e vargut publik; Çelësi i vargut publik; vargu publik ; ) klasa ZabbixSender (struktura e brendshme SendItem (// ReSharper çaktivizon InconsistentNaming - Zabbix është pritës publik i vargut të ndjeshëm ndaj shkronjave të vogla; çelësi publik i vargut; vlera e vargut publik; ora e vargut publik; // ReSharper restore InconsistentNaming) #pragma warning disable 0649 Response brendshme Zabbix ( Përgjigja e vargut publik; Informacioni i vargut publik;) #pragma warning restore 0649 #region --- Konstante --- string i konstit publik DefaultHeader = "ZBXD \ x01"; string publik i konstatimit SendRequest = "të dhënat e dërguesit"; konstancë publike int DefaultTimeout = 10000 ; #endregion #region --- Fushat --- private vetëm për lexim DateTime _dtUnixMinTime = DateTime.SpecifyKind (DateTime e re (1970, 1, 1), DateTimeKind.Utc); private vetëm për lexim int _timeout; varg privat vetëm për lexim _zabbixserver; private vetëm për lexim int _zabbixport; #endregion #region --- Konstruktorët --- publik ZabbixSender (string zabbixserver, int zabbixport): ky (zabbixserver, zabbixport, DefaultTimeout) () publik ZabbixSender (string zabbixserver, int zabbixport, int timeout) (_zabbixserver = zabbix; = timeout;) #endregion #region --- Metodat --- varg publik SendData (ZabbixItem itm) (ktheje SendData (lista e re (1) (itm)); ) vargu publik SendData (Lista lstData) (provoni (var serializer = JavaScriptSerializer i ri (); vlerat e var = Lista e re (lstData.Count); vlerat.AddRange (lstData.Select (itm => SendItem i ri (host = itm.Host, çelësi = itm.Key, vlera = itm.Value, ora = Math.Floor ((DateTime.Now.ToUniversalTime () - _dtUnixMinTime). TotalSeconds) .ToString (CultureInfo.InvariantCulture)))); var json = serializator.Serialize (i ri (kërkesë = SendKërkesë, të dhëna = vlera.ToArray ())); var header = Encoding.ASCII.GetBytes (DefaultHeader); gjatësia var = BitConverter.GetBytes ((i gjatë) json.Gjatësia); var të dhëna = Encoding.ASCII.GetBytes (json); var pako = bajt i ri; Buffer.BlockCopy (header, 0, packet, 0, header.Length); Buffer.BlockCopy (gjatësia, 0, paketa, header.Length, gjatësia.Length); Buffer.BlockCopy (të dhënat, 0, paketa, koka. Gjatësia + gjatësia. Gjatësia, të dhënat. Gjatësia); duke përdorur (var fole = fole e re (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) (socket.Connect (_zabbixserver, _zabbixport); socket.Send (paketë); // Header var buffer = byte i ri (s ReceivD , buffer, 0, buffer.Length, _timeout); nëse (DefaultHeader! = Encoding.ASCII.GetString (buffer, 0, buffer.Length)) hedh Përjashtim të ri ("Titull i pavlefshëm"); // Buffer i gjatësisë së mesazhit = bajt i ri ; ReceivData (socket, buffer, 0, buffer.Length, _timeout); var dataLength = BitConverter.ToInt32 (buffer, 0); if (dataLength == 0) hedh një Përjashtim të ri ("Gjatësia e pavlefshme e të dhënave"); // Buferi i mesazheve = bajt i ri; ReceivData (fole, buffer, 0, buffer. Length, _timeout); var përgjigje = serializues.Deserialize (Encoding.ASCII.GetString (buffer, 0, buffer.Length)); kthimi i vargut.Formati ("Përgjigje: (0), Informacion: (1)", përgjigje.Përgjigje, përgjigje.Info); )) catch (Përjashtim e) (vargu i kthimit. Formati ("Përjashtim: (0)", e);)) zbrazëti private statike ReceivData (Socket pObjSocket, buffer byte, int offset, int size, int timeout) (var startTickCount = Environment.TickCount; var marrë = 0; bëj (nëse (Environment.TickCount> startTickCount + timeout) hedh TimeoutException të ri (); provo (merr + = pObjSocket.Receive (bufer, kompensim + marrë, madhësi - marrë, SocketFlags. Asnjë) .< size); } #endregion } }


Konfigurimet ... Është koha për të bërë të paktën diçka interesante. Së pari, ne do të ruajmë kutitë që po zgjedhim në konfigurime. Së dyti, cilësimet e DataFlow. Unë sugjeroj këtë:

Konfigurimet



Pra, hosti dhe porti ku lidhet, përdoruesi dhe fjalëkalimi - gjithçka është e qartë këtu. Tjetra është lloji i kutisë. Le të themi se shërbimi po përdoret nga marketingu (si dhe departamente të tjera). Ata kanë kuti postare ku hidhen përgjigjet automatike të postimeve, si dhe raporte të padëshiruara të FBL. Vetë kutia postare tashmë e kategorizon letrën, prandaj, për situata të tilla, ne vendosim menjëherë llojin e kutisë postare. Me cilësimet e DataFlow, do të jetë e qartë më vonë kur të fillojmë të krijojmë objekte. Këtu do të kemi seksionet tona në konfigurim. Ka shumë manuale se si ta bëni këtë, kështu që unë do të tregoj vetëm rezultatin:

Përcaktimi i llojeve

#region --- Llojet --- klasë statike Lloji i kutisë postare (vargu konst publik Bo = "bo"; vargu konst publik Crm = "crm"; vargu konst publik Fbl = "fbl"; vargu konst publik Bounce = "fryrje";) klasa MailboxInfo (vargu publik Lloji (merr; vendos;) varg publik Emri i hostit (merr; vendos;) varg publik Përdoruesi (merr; vendos;) varg publik Fjalëkalimi (merr; vendos;) publik int Port (merr; vendos;)) klasa DataBlockOptions (public int Maxdop (get; set;) public int BoundedCapacity (get; set;) Public DataBlockOptions () (Maxdop = 1; BoundedCapacity = 1;)) #endregion


Krijo seksione

///

/// Seksioni i konfigurimit të personalizuar /// klasë publike CustomSettingsConfigSection: ConfigurationSection (public CredentialsCollection CredentialItems (merr (ktheje bazën ["CredentialsList"] si CredentialsCollection;)) publike DataBlockOptionsCollection DataFlowOptionsItems (merr (ktheje bazën ["DataistBlock)"OptionsL"]


///

/// Mbledhja e personalizuar - lista e kredencialeve /// Klasa publike CredentialsCollection: ConfigurationElementCollection, IEnumerable (mbrojtje e mbrojtur ConfigurationElement CreateNewElement () (ktheje CredentialsElement të ri ();) Mbrojtur mbivendosjen e objektit GetElementKey (elementi ConfigurationElement) (elementi i kthimit ((CredentialsElement)) .Emri i përdoruesit;) publik CredentialsElement this (get (return indexElement) ) IEnumerator i ri publik < Count; i++) { yield return BaseGet(i) as CredentialsElement; } } } /// /// Artikull i personalizuar kredencialet /// klasë publike CredentialsElement: ConfigurationElement (string publik Emri i hostit (merr (ktheje bazën ["emri i hostit"] si varg;)) varg publik Emri i përdoruesit (merr (ktheje bazën ["emri i përdoruesit"] si varg;)) varg publik Fjalëkalimi (merr (ktheje bazën ["fjalëkalimi"] si varg;)) vargu publik Lloji (merr (bazën e kthimit ["lloji"] si varg;)) vargun publik Port (merr (bazën e kthimit ["port"] si varg;))) /// /// Mbledhja e personalizuar - Lista e opsioneve të DataBlock /// klasë publike DataBlockOptionsCollection: ConfigurationElementCollection, IEnumerable (mbrojtje e mbrojtur ConfigurationElement CreateNewElement () (kthimi i ri DataBlockOptionsElement ();) objekti i mbrojtur i zëvendësimit GetElementKey (Elementi ConfigurationElement) (elementi i kthimit ((DataBlockOptionsElement)) .Emri;) publik CredentialsElement this (get (returnElements) ) IEnumerator i ri publik GetEnumerator () (për (var i = 0; i< Count; i++) { yield return BaseGet(i) as DataBlockOptionsElement; } } } /// /// Artikulli i opsioneve të personalizuara të bllokut të të dhënave /// klasë publike DataBlockOptionsElement: ConfigurationElement (string publik Emri (merr (ktheje bazën ["emri"] si varg;)) varg publik Maxdop (merr (ktheje bazën ["maxdop"] si varg;)) varg publik BoundedCapacity (merr (bazën e kthimit ["kapaciteti i kufizuar"] si varg;)))


Unë nuk do të shkruaj zbatimin e plotë të konfigurimit, supozohet se gjatë procesit të zhvillimit parametrat që na duhen do të shtohen atje.

Le të lexojmë cilësimet tona të personalizuara si kjo:

Lexoni

Lista publike Lista e kredencialeve (merr; grup privat;) Fjalor publik DataFlowOptionsList (merr; grup privat;) ... Konfigurimi statik () (provo (var customConfig = (CustomSettingsConfigSection) ConfigurationManager.GetSection ("CustomSettings"); // Merr kutitë postare në foreach (artikull var në customConfig.CreddentialItemsL) Info e re e kutisë postare (Emri i hostit = artikulli.Emri i pritësit, Porti = Convert.ToInt32 (artiku.Port), Përdoruesi = artikulli.Emri i përdoruesit, Lloji = artikulli.Lloji, Fjalëkalimi = artikulli.Fjalëkalimi)); // Merrni cilësimet e rrjedhës së të dhënave për foreach (artikull var në customConfig.DataFlowOptionsItems) DataFlowOptionsList.Add (artikull.Emri, të reja DataBlockOptions (Maxdop = Convert.ToInt32 (item.Maxdop), BoundedCapacity = Convert.ToInt32 (artikull.BoundedCapacity (Egger)x)"); Gabim në leximin e konfigurimit: (0)", p.sh. Mesazh); hedh;))


Disi rezulton shumë e zgjatur, dhe ne nuk kemi arritur as tek më interesantet.

Tani për tani, le të heqim lidhjen e TopShelf, numëruesit e performancës, komunikimin me bazën e të dhënave dhe të fillojmë me biznesin! Ne krijojmë klasën Crawler - thelbin. Së pari, ne lexojmë postën:

Private volatile bool _stopPipeline; ... bosh publik Fillimi () (bëj (var getMailsTasks = _config.CredentialsList.Select (kredencialet => Task.Run (() => GetMails (kredencialet))). ToList (); foreach (detyrë var në getMailsTasks) detyrë .Wait (); Thread.Sleep (2000);) ndërsa (! _StopPipeline); // Stop pipeline - prisni për përfundimin e të gjitha pikave përfundimtare // Kjo do të ndalojë tubacionin DataFlow nëse (_stopPipeline) Logger.Log.Warn ("Pipeline është ndaluar nga përdoruesi ");)
Këtu dembelizmi bëri të vetën dhe vendosa të mos shqetësohem - nëse ka rreth 20-30 kuti, mund të kryeni një detyrë për secilën dhe të mos shqetësoheni për numrin e fijeve. (Më lejoni të bëj dush me domate.)

Le të kalojmë në vetë leximin:

GetMails private të pavlefshme (Info e kutisë postare) (provoni (duke përdorur (klient var = Pop3Client i ri ()) (
Le të llogarisim menjëherë kohën e hyrjes në kutinë postare - të dobishme për diagnostikimin e ngarkesës së rrjetit dhe serverit.

// Merr metrikën Zabbix var kronometër = kronometër i ri (); kronometër.Start (); // Merr numrin e postës klient.Connect (info.Hostname, info.Port, false); klient.Authenticate (info.User, info.Password); kronometër.Stop ();
Dërgimi i të dhënave në Zabbix. Është e thjeshtë - ne specifikojmë emrin e hostit (siç është në Zabbix), çelësin (përsëri, në mënyrë rigoroze, si në Zabbix) dhe vlerën e vargut.

// Dërgoje te Zabbix Zabbix.Sender.SendData (ZabbixItem i ri (Host = Config.HostKey, Key = info.Type + Config.TimingKey, Vlera = kronometër.ElapsedMilliseconds.ToString ())); Logger.Log.Debug ("Dërgo [(0)] kohën te Zabbix: lidhur me" (1) "si" (2) ", koha (3) ms", info.Type, info.Emri i hostit, info.Përdoruesi, kronometër.Milisekonda të kaluara); var count = klient.GetMessageCount (); nëse (numërimi == 0) kthehet; Logger.Log.Debug ("Ne" kemi marrë (0) mesazhe të reja në "(1)" ", count, info.User); // Dërgo mesazhe në bllokun e renditjes për (var i = 0; i< count; i++) { try { var mailInfo = new MessageInfo { IsSpam = false, Mail = client.GetMessage(i + 1), Type = MessageType.UNKNOWN, Subtype = null, Recipient = null, Mailbox = info }; Logger.Log.Debug("Download message from "{0}". Size: {1}b", info.User, mailInfo.Mail.RawMessage.Length);
Tubacioni DataFlow do të krijohet kur krijohet klasa Crawler. Ne besojmë se hapi ynë i parë është të renditim letrën.

Ndërsa (! _SortMailDataBlock.Post (mailInfo)) Thread.Sleep (500);
E shihni sa e thjeshtë është - vetë transportuesi është një. Të gjitha detyrat që lexojnë postën dërgojnë mesazhe aty një nga një. Nëse blloku është i zënë, Postimi do të kthehet false dhe ne thjesht do të presim derisa të jetë i lirë. Djersa aktuale vazhdon të funksionojë në këtë kohë. Kjo është ajo që unë e quaj njëkohësi pa shqetësime.

Mesazhi shkoi te transportuesi, tani mund ta ruani në një arkiv RAW me qetësi (po, gjithçka që lexojmë - e ruajmë në një arkiv skedari. Shërbimi mbështetës do të na falënderojë më vonë).

Le të vendosim, për shembull, rrotullimin e arkivit:

NLog.config



Atëherë mund të vendosni logStash në të, por kjo është një histori tjetër ...

// Ruani çdo postë në arkiv Logger.Log.Debug ("Arkive message"); Logger.Archive.Info (Functions.MessageToString (mailInfo.Mail)); ) catch (Exception ex) (Logger.Log.Error ("Parse error email: (0)", ex.Message); Functions.ErrorsCounters.Increment (); // Arkivo postën gjithsesi Logger.Log.Debug ("Mesazhi i arkivit "); Logger.Archive.Info (Encoding.Default.GetString (klient.GetMessageAsBytes (i + 1)));) nëse (_config.DeleteMail) klienti.DeleteMessage (i + 1); nëse (_stopPipeline) prishet; ) Logger.Log.Debug ("U krye me" (0) "", info.User); )) catch (Exception ex) (Logger.Log.Gabim ("Gabimi i përgjithshëm - lloji: (0), mesazhi: (1)", ex, ex.Message); Functions.ErrorsCounters.Increment ();))
Këtu kemi përdorur numërues të gabimeve statike (përsa i përket llojeve të kutive), ku numëruesit e gabimeve janë:

Fjalor statik publik ErrorsCounters = Fjalor i ri ();
Dhe vetë numëruesit mund të bëhen si kjo:

Kundër.cs

Numër i klasës (_numërues i gjatë privat; numërues publik () (_counter = 0;) zbrazëti publike Rritje () (I ndërlidhur. Rritje (ref _counter);) publik i gjatë Lexuar () (kthim _counter;) publik i gjatë Rifresko () (kthim i ndërlidhur .Exchange (ref _counter, 0);) public void Add (vlera e gjatë) (E ndërlidhur. Shto (ref _counter, value);) public void Set (vlera e gjatë) (Interlocked.Exchange (ref _counter, value);))


Le të kalojmë në krijimin e një tubacioni. Le të themi se kemi kuti ku futen përgjigjet automatike. Shkronjat e tilla duhet të analizohen (çfarë lloj përgjigjeje automatike, nga kush, nga cila listë postimesh, etj.) dhe të vendoset rezultati në ruajtje (DB). Le të themi se ka kuti ku bien raportet e FBL. Ne i shtojmë letra të tilla në bazën e të dhënave menjëherë. Ne i konsiderojmë të gjitha letrat e tjera "të dobishme" - ato duhet të kontrollohen për spam dhe të dërgohen në një sistem të jashtëm, për shembull, CRM.

Siç e keni kuptuar tashmë, ky shembull kryesisht konsideron përdorimin e koleksionistit për detyrat e marketingut - mbledhjen e statistikave për dërgimin e postës, informacione rreth spamit.

Pra, ne kemi vendosur për rrjedhën e punës. Ne deklarojmë blloqet e nevojshme në klasën Crawler:

Klasa MessageInfo (bool publik IsSpam (merr; vendos;) postë mesazhi publik (merr; vendos;) varg publik Nënlloji (merr; vendos;) varg publik Marrësi (merr; vendos;) publik Lloji i mesazhit Lloji (merr; vendos;) publik Info kuti postare Kutia postare (merr; vendos;)) klasa Crawler (// TransformBlock private e tubacionit _sortMailDataBlock; TransformBlock privat _spamFilterDataBlock; TransformBlock privat _checkBounceDataBlock; TransformBlock privat _identifyDataBlock; ActionBlock privat _addToCrmDataBlock; ActionBlock privat _addToFblDataBlock; ActionBlock privat _addToBounceDataBlock; ...
Ne krijojmë një metodë inicializimi dhe krijojmë blloqe tubacioni (ne përdorim seksionet tona të mrekullueshme nga konfigurimet për të inicializuar blloqet):

Publik void Init () (// *** Krijo tubacion *** // Krijo TransformBlock për të marrë llojin e mesazhit var blockOptions = _config.GetDataBlockOptions ("_ sortMailDataBlock"); _sortMailDataBlock = TransformBlock i ri (mail => SortMail (mail), e reja ExecutionDataflowBlockOptions (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo TransformBlock për të filtruar spam blockOptions = _config.GetDataBlockOptions ("_ spamFilterDataBlock"); _spamFilterDataBlock = TransformBlock i ri (mail => FilterSpam (mail), ExecutionDataflowBlockOptions të reja (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo TransformBlock për të renditur kërcimet blockOptions = _config.GetDataBlockOptions ("_ checkBounceDataBlock"); _checkBounceDataBlock = TransformBlock i ri (mail => BounceTypeCheck (mail), e reja ExecutionDataflowBlockOptions (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo TransformBlock për të identifikuar pronarin e kërcimit blockOptions = _config.GetDataBlockOptions ("_identDataBlock"); _identifyDataBlock = TransformBlock i ri (mail => GetRecipient (mail), e reja ExecutionDataflowBlockOptions (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo ActionBlock për të dërguar postë në CRM blockOptions = _config.GetDataBlockOptions ("_ addToCrmDataBlock"); _addToCrmDataBlock = ActionBlock i ri (mail => AddToCrm (mail), e reja ExecutionDataflowBlockOptions (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo ActionBlock për të dërguar FBL në MailWH blockOptions = _config.GetDataBlockOptions ("_ addToFblDataBlock"); _addToFblDataBlock = ActionBlock i ri (mail => AddToFbl (mail), e reja ExecutionDataflowBlockOptions (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity)); // Krijo ActionBlock për të dërguar Bounce te MailWH blockOptions = _config.GetDataBlockOptions ("_ addToBounceDataBlock"); _addToBounceDataBlock = ActionBlock i ri (mail => AddToBounce (mail), ExecutionDataflowBlockOptions të reja (MaxDegreeOfParallelism = blockOptions.Maxdop, BoundedCapacity = blockOptions.BoundedCapacity));
Ne montojmë transportuesin në përputhje me skemën tonë:

// *** Ndërtimi i tubacionit *** _sortMailDataBlock.LinkTo (_spamFilterDataBlock, info => info.Type == MessageType.GENERAL); _sortMailDataBlock.LinkTo (_addToFblDataBlock, info => info.Type == MessageType.FBL); _sortMailDataBlock.LinkTo (_checkBounceDataBlock, info => info.Type == MessageType.BOUNCE); _sortMailDataBlock.LinkTo (DataflowBlock.NullTarget (), info => info.Type == MessageType.PANJOHUR); / * STUB * / _checkBounceDataBlock.LinkTo (_identifyDataBlock); _identifyDataBlock.LinkTo (_addToBounceDataBlock); _spamFilterDataBlock.LinkTo (_addToCrmDataBlock, info =>! info.IsSpam); _spamFilterDataBlock.LinkTo (DataflowBlock.NullTarget (), info => info.IsSpam); / * cung * /
Siç mund ta shihni, gjithçka është jashtëzakonisht e thjeshtë - ne e lidhim bllokun me atë tjetër (me aftësinë për të vendosur gjendjen e lidhjes). Të gjitha blloqet ekzekutohen paralelisht. Çdo bllok ka një shkallë paralelizmi dhe kapaciteti (duke përdorur kapacitetin, mund të rregulloni radhën përpara bllokut, domethënë blloku ka marrë një mesazh, por ende nuk është duke u përpunuar). Kështu, mund të vendosni një shkallë të lartë paralelizmi për operacionet "komplekse" dhe që kërkojnë kohë, të tilla si analizimi i përmbajtjes së emailit.

Unë nuk do ta përshkruaj materialin DataFlow, është më mirë të lexoni gjithçka në burimin origjinal TPL DataFlow.

SortMailDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _spamFilterDataBlock) .Fault (t.Exception); tjetër _spamFilterDataBlock.Complete ();)); _sortMailDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _addToFblDataBlock) .Fault (t.Exception); tjetër _addToFblDataBlock.Complete ();)); _sortMailDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _checkBounceDataBlock) .Fault (t.Exception); tjetër _checkBounceDataBlock.Complete ();)); _spamFilterDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _addToCrmDataBlock) .Fault (t.Exception); tjetër _addToCrmDataBlock.Complete ();)); _checkBounceDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _identifyDataBlock) .Fault (t.Exception); else _identifyDataBlock.Complete ();)); _identifyDataBlock.Completion.ContinueWith (t => (nëse (t.IsFaulted) ((IDataflowBlock) _addToBounceDataBlock) .Fault (t.Exception); tjetër _addToBounceDataBlock.Complete ();)); )
Gjithçka, në fakt, tubacioni tashmë po funksionon, ju mund të postoni mesazhe në të. Mbetet vetëm për ta ndaluar atë duke shtuar metodën tonë të Fillimit:

Filloni

bosh publik Fillimi () (bëni (var getMailsTasks = _config.CredentialsList.Zgjidh (kredencialet => Task.Run (() => GetMails (kredencialet))). ToList (); foreach (detyrë var në getMailsTasks) detyrë. Prisni ( Thread.Sleep (2000);) while (! _StopPipeline); // Stop pipeline - prisni për përfundimin e të gjitha pikave fundore _sortMailDataBlock.Complete (); _addToCrmDataBlock.Completion.Wait (); .Completion.Wait (); if (_stopPipeline) Logger.Log.Warn ("Typeline është ndalur nga përdoruesi");)


Duke kaluar te delegatët.
Renditja ... Epo, le të themi se gjithçka është e thjeshtë këtu (ne gjithmonë kemi kohë ta komplikojmë):

MessageInfo Private SortMail (MessageInfo mail) (ndërprerës (mail.Mailbox.Type) (rasti MailboxType.Crm: mail.Type = MessageType.GENERAL; pushim; rasti MailboxType.Bounce: mail.Type = MessageTypeType.Type = MessageType.Type.Type. Fbl: mail.Type = MessageType.FBL; pushim;) kthej postën;)
Filtri i spamit. Kjo është për detyrat e shtëpisë - përdorni SpamAssassin.
Këtu është një delegat për ju:

Private MessageInfo FilterSpam (MessageInfo mail) (// TODO: Shto postën e kthimit të logjikës SpamAssassin;)
Dhe klasa për të punuar me SpamAssassin API (lidhja me projektin).
Dhe kalojmë në analizimin e shkronjave. Ne analizojmë përgjigjet automatike. Këtu hyn MEF.
Krijo një projekt (dll) me ndërfaqe për shtojcat tona (Le të thërrasim Ndërfaqet).
Shtoni ndërfaqen:

Ndërfaqja publike ICondition (Kontrolli i vargut (Message mimeMessage);) ndërfaqja publike IConditionMetadata (Lloji i llojit (merr;))
Dhe kjo eshte. TopCrawler-i ynë varet nga ky projekt dhe projekti i shtojcave do ta përdorë gjithashtu atë.
Krijo një projekt të ri (gjithashtu dll), emërtoje Kushtet.
Le të shtojmë llojet e përgjigjeve automatike:

#region --- Llojet --- klasa statike BounceType (string konst publik i plotë = "BounceTypeFull"; string publik i konstatimit Timeout = "BounceTypeTimeout"; string publik const Refused = "BounceTypeRefused"; string publik i konstatimit NotFound = "BounceFound" Jot string const Inactive = "BounceTypeInactive"; string publik const OutOfOffice = "BounceTypeOutOfOfOffice"; string publik const HostNotFound = "BounceTypeHostNotFound"; string publik i konstituimit NotAuthorized = "BounceTypeOutOfOfOfOfficeNotAutorized"
Dhe klasat që zbatojnë ndërfaqen tonë:

Klasa publike ConditionNotFound1: ICondition (vargu publik Kontrollo (Message mimeMessage) (nëse (! MimeMessage.MessagePart.IsMultiPart) kthen null; modeli konst string = "Diagnostic-Code:. + Smtp. + 550"; var regexxp , RegexOptions.IgnoreCase); kthe mimeMessage.MessagePart.MessageParts.Any (pjesë => part.ContentType.MediaType == "mesazh / statusi i dorëzimit" && regexp.IsMatch (part.GetBodyAsText: nullceT;)pe) ) ... klasa publike ConditionTimeout2: ICCondition (kthimi BounceType.Timeout;) ...
Siç mund ta shihni, gjithçka ka të bëjë me atributet. Me ndihmën e tyre do të ngarkohen shtojcat.
Ne kthehemi në projektin tonë dhe ngarkojmë shtojcat:

Klasa Crawler (... // Plugins publike IEnumerable > BounceTypeConditions (merr; vendos;) private void LoadPlugins () (provo (var kontejner = CompositionContainer i ri (Catalog i ri i Drejtorisë (_config.PluginDirectory), i vërtetë); kontejner.ComposeParts (kjo);) kap (Exception ex) (Logger.Log .Gabim ("Nuk mund të ngarkohen shtojcat: (0)", p.sh. Mesazh);)) ...
Ne tërheqim LoadPlugins në konstruktorin e klasës sonë. Unë nuk do të shpjegoj në detaje për mekanizmin e ngarkimit - Google do të bëjë më mirë.

Kalimi te delegati ynë i vërtetimit të llojit Bounce. Kushtet do të zbatohen me radhë derisa të aktivizohet e para, metoda ekskluzive:

Private MessageInfo BounceTypeCheck (MessageInfo mailInfo) (provo (foreach (var gjendja në BounceTypeConditions) (var res = kusht.Vlera.Kontrollo (mailInfo.Mail); nëse (res == null) vazhdo; mailInfo.Subgger = Log res; .Korrigjimi ("Kushti i llojit të kthimit [(0)] u aktivizua për mesazhin [(1)]", kusht.Metadata.Type, mailInfo.Mail.Headers.MessageId; break;)) kapja (Përjashtim ex) (Logger.Log .Gabim ("Dështoi në përcaktimin e llojit të kthimit për mesazhin" (0) ": (1)", mailInfo.Mail.Headers.MessageId, ex.Message); Logger.ErrorsCounters.Increment ();) ktheni mailInfo;)
Kështu, nëse shfaqet një logjikë e re, mjafton thjesht të shtoni një klasë të re në projekt me shtojca që zbatojnë ndërfaqen tonë dhe - voila! Unë nuk do të bashkëngjit një shembull të shtojcës së dytë për të përcaktuar dërguesin e letrës - ky është tashmë një postim i gjatë (Përgjigja automatike u krijua nga vetë serveri, kështu që dërguesi duhet të analizohet gjithashtu nga titujt e letër).

Nuk ka asgjë të pazakontë me regjistrimin e rezultateve në bazën e të dhënave. Për shembull, si kjo:

Private e zbrazët AddToBounce (MessageInfo mail) (provoni (MailWH.BounceAdd (mail); Functions.ProcessedCounters.Increment (); Functions.Log.Debug ("Dërgo Bounce te MailWH");) kap (Exception ex) (Functions.Log. Gabim ("Gabim gjatë ruajtjes së mesazhit Bounce" (0) "te MailWH: (1)", mail.Mail.Headers.MessageId, ex.Message; Functions.ErrorsCounters.Increment ();))

BounceShto

publik statik i gjatë BounceAdd (mesazh Info Message) (duke përdorur (var conn = new SqlConnection (ConnectionString)) duke përdorur (var cmd = ri SqlDataAdapter ("BounceAdd", conn)) (var body = message.Mail.FindFirst = nullTextVersion?) message.Mail.FindFirstHtmlVersion (). GetBodyAsText (): message.Mail.FindFirstPlainTextVersion (). GetBodyAsText (); var outId = ri SqlParameter ("@ ID", SqlDbType.BigInt) (Drejtimi =Drejtimi Parametri =Drejtimi i Parametrit); .CommandType = CommandType.StoredProcedure; cmd.SelectCommand.Parameters.Add (SqlParameter i ri ("@ RawMessage", mesazh.Mail.RawMessage)); ; cmd.SelectCommand.Parameters.Add (sqlParameter i ri ("@ Subject", message.Mail.Headers.Subject ?? ""));cmd.SelectCommand.Parameters.Add (i ri SqlParameter ("@ MessageID", mesazh.Mail .Headers.MessageId ?? ""));cmd.SelectCommand.Parameters.Add (SqlParameter i ri ("@ AddressTo", mesazh.Mail.Headers.To.Address ?? ""));cmd.SelectComm dhe.Parameters.Add (i ri SqlParameter ("@ AddressFrom", mesazh.Mail.Headers.From.Address ?? "")); cmd.SelectCommand.Parameters.Add (SqlParameter i ri ("@ DateRecieved", DateTime.Tani)); cmd.SelectCommand.Parameters.Add (SqlParameter i ri ("@ BounceTypeSysName", (objekt) mesazh. Nënlloji ?? DBNull.Vlera)); cmd.SelectCommand.Parameters.Add (sqlParameter i ri ("@ SourceFrom", (objekt) mesazh. Marrësi ?? DBNull.Vlera)); // TODO: Shto mbështetjen e ListId cmd.SelectCommand.Parameters.Add (i ri SqlParameter ("@ ListId", DBNull.Value)); cmd.SelectCommand.Parameters.Add (outId); conn.Open (); cmd.SelectCommand.ExecuteNonQuery (); kthimi jashtëId.Vlera për aq kohë? ?? 0; ))


Më falni që nuk kam kohë për të shfaqur TopShelf - postimi tashmë është shumë i fryrë.

konkluzionet

Në këtë tutorial, mësuam se mbledhja e postës mund të jetë e ndërlikuar. Bërthama e zhvilluar ju lejon të shtoni shpejt hapat e rinj të procesit - blloqet e DataFlow, pa ndikuar në logjikën ekzistuese. Nënsistemi i shtojcave ju lejon të ndërtoni shpejt logjikën e analizimit të ngjashëm me skriptin dhe vetë DataFlow paralelizon të gjitha llogaritjet (dhe ne kemi aftësinë për të konfiguruar në mënyrë fleksibël multithreading për një makinë specifike). TopShelf na jep mundësinë për të ekzekutuar një shërbim si në modalitetin e shërbimit ashtu edhe në modalitetin e konsolës për korrigjim më të lehtë.

Fuh ... Nëse është interesante, do t'ju tregoj më tej se si ta vendosni në binarët e Integrimit të Vazhdueshëm, të konfiguroni ndërtime automatike dhe të lëshoni një version përmes VS Release Management.

Etiketa: Shto etiketa

Artikujt kryesorë të lidhur