Postkasti saabuvaid kirju on võimalik suunata lisaks mõnele teisele e-posti aadressile ka HTTP-päringuna URL’ile, mis annab võimaluse kirju programmaatiliselt töödelda.
Andmeturvalisuse tõttu saab kasutada ainult selliseid URL’e, mille domeen on sama, mis suunaval e-posti aadressil. Lubatud on kasutada ka alamdomeene.
Näiteks postkastile name@example.com lisatud suunamisaadress https://example.com/mail_to_http.php
.
Kui päringu vastuvõtmise URL/fail on kaitstud Apache Basic auth’iga (HTTP Authentication), tuleb selle kasutajanimi ja salasõna URL’ile juurde lisada kujul:
https://user:pwd@example.com/mail_to_http.php
Mail-to-http suunamise URL’ile saab lisada Minu Zone
keskkonnas veebimajutuse jaotises E-post
-> Postkastid
vastava postkasti halduse jaotises Suunamine
.
Uue kirja saabudes teeb server HTTP POST-päringu suunamise URL’ile.
$_POST
massiivi muutujad on:
id (string): kirja id from (string): kirja saatja e-posti aadress to (string): kirja adressaadi e-posti aadress headers (array): from (JSON object): kirja saatja nimi ja e-posti aadress to (JSON array): kirja adressaadi nimi ja e-posti aadress date (string): kirja saatmise aeg (RFC 2822) message_id (string): kirja unikaalne Message-ID subject (string): kirja pealkiri mail_to_http (array): from (string): kirja saatja (SMTP protokolli MAIL FROM:) rcpt (string): kirja adressaat (SMTP protokolli RCPT TO:) real_length (int): töötlemata kirja (body) täispikkus body (string): kiri töötlemata kujul (RFC822)
Kirjad, mis on suuremad kui 500 KiB, saab kätte .eml failina $_FILES
massiivist.
$_FILES
massiivi väljad on tüüpilised POST üleslaadimise omad:
PHP dokumentatsioon: POST method uploads
$_FILES
massiivi muutujad on:
message (array): name (string): .eml faili nimi type (string): kirja formaadi tüüp tmp_name (string): absoluutne rada ajutise failini error (string): veakood size (string): faili suurus baitides
Kui POST-päringut vastuvõttev skript või veebiserver tagastab HTTP staatuskoodina veakoodi 5xx, hoiab e-posti server kirja järjekorras ning üritab kirja mõne aja pärast uuesti samale URL’ile saata.