Mail To HTTP

Kuidas luua täisautomaatne keskkond, mis vastavalt sissetulnud kirjadele saadab neile automaatse vastuse, lisab/uuendab kodulehel materjale või teeb sootuks midagi muud huvitavat? Noh, keskkonna enda loomise kohta siit õpetussõnu ei leia, küll aga seda, kuidas luua side mailikonto ja kodulehe vahel.


Võimalus 1: Kui mailiserveri “sisemusele” ligipääs puudub, siis on võimalus luua kodulehele POP3/IMAP protokollil baseeruv kontrollsüsteem (mail polling), mis teatud ajavahemiku tagant käib vastavat mailikontot kontrollimas ning kui on uusi kirju, siis tegutseb vastavalt. See eeldaks kodulehe tegijalt päris palju lisakoodi kirjutamist ning lisaks ka POP3/IMAP protokolli tundma õppimist. Seda kõike ainult selleks, et kirjad koduleheni jõuaksid.

Võimalus 2: Teine võimalus on mailiserveri tarkvarasse seadistada teavitussüsteem (mail notify), mis kodulehele momentaalselt märku annab, kui uus kiri on saabunud. Kodulehele tuleb vaid juurde kribada skript, mis võtab vastu teavitusi uute kirjade kohta.

DataZone virtuaalserveri klientidel on nüüdsest võimalik kasutada seda mugavat teist võimalust. Teavitussüsteemi aktiveerimiseks tuleb DataZone haldusliideses võtta ette vastava e-posti aadressi muutmise aken ning lahtris Mail-To-HTTP URL ära määrata aadress, kuhu teavitused saabuma hakkavad. Turvalisuse huvides peab URL asuma samas domeenis, kus seadistatav e-posti aadresski. Soovi korral võib selle skripti ka parooli alla panna (HTTP Authentication), kuid siis peab kasutajanime ja parooli ka URL-is ära määrama,näiteks:

http[s]://kasutaja:parool@www.domeen.ee/skript/mis/võtab/teavitusi/vastu.php


Kui nüüd saadetakse kiri sellele e-posti aadressile siis teeb teavitussüsteem HTTP POST päringu seadistatud URLi peale ning kaasa paneb massiivi $mail_to_http[…] atribuutidega:

  • from (string) – Kirja saatja (SMTP protokolli MAIL FROM:<aadress>)
  • rcpt (string) – Kirja adressaat (SMTP protokolli RCPT TO:<aadress>)
  • body (string) – Kogu RFC822 kiri töötlemata kujul
  • real_length (int) – Töötlemata kirja (body) täispikkus.

Kirja edastamisel skriptile piiranguid otseselt pole välja arvatud see, et skript peab hetkel asuma samas domeenis, mille e-posti aadressilt mail2http on seadistatud.


Märkused:

  • Kirja sisu töötlemine ja sealt omale vajaliku informatsiooni ammutamine jääb kodulehe skripti ülesandeks kuna see sõltub juba väga konkreetselt automaatse keskkonna otstarbest. Mail To HTTP ülesanne on vaid võimaldada sild mailiserverist koduleheni.
  • Kui veebiserver tagastab HTTP vastusekoodina veakoodi (4xx või 5xx), siis hoiab mailiserver kirja järjekorras ning üritab mõne aja pärast uuesti sellele URL-ile saata.

Sisuliselt sama Mail To HTTP funktsioon on meie enda Zone keskkonnas kasutusel näiteks helpdeski süsteemis (trouble ticket system), kus kõik saabunud kirjad pannakse andmebaasi ning on ühtse veebikeskkonna kaudu kättesaadavad/hallatavad/vastatavad kõikidele klienditoega tegelevatele töötajatele.