Mail To HTTP

margus
Jaga:

Antud blogipostitus on 212 kuud vana ning ei pruugi olla enam ajakohane.

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 $_POST[‘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.

Populaarsed postitused

"Pilve pole olemas. On lihtsalt kellegi teise arvuti."

Ardi Jürgens
Mis ikkagi on pilveteenus, kuidas see keerukas süsteem töötab ning kuidas me tulime mõne nädala eest toime ühe jõudlust pärssinud ootamatusega....

Saabub OpenSSL 3 tugi - ka aegunud PHP versioonidele

Ingmar Aasoja
Zone veebimajutusplatvormi aluseks olevat ZoneOS operatsioonisüsteemi ootab ees suurem uuendus: juurutame OpenSSL 3. versiooni. See muutus mõjutab pea...

Uuendame NodeJS ja Python vaikeversioone

Ingmar Aasoja
Juunis 2024 hakkame Zone platvormi järk-järgult l uuendama NodeJS ja Python vaikeversioone, mistõttu palume käesoleva kirjatükiga tähelepanu just...

Veelkord aegunud PHP versioonidest

Kaarel Urva
Mäletatavasti teavitasime aprilli lõpus kliente sellest, et aegunud PHP versioonide kasutamine muutub tasuliseks. Mõistetavasti tuli see uudis paljudele...