E-kirja töötlemine veebiserveris

Ingmar Aasoja
RSS: Jaga:

E-post on internetiajastu kõige tähtsam suhtlusviis. Kuigi läbi aastate on olnud palju katseid e-posti asendamiseks (näiteks MSN Messenger, Skype, Telegram, Facebook ja WhatsApp), on e-post tõestanud oma usaldusväärsust ja püsivust. Selles postituses vaatleme, kuidas saab e-posti kasutada protsesside automatiseerimiseks ja kuidas suunata e-kirju oma veebiserverisse.

E-kirja suunamine veebiaadressile

Zones on võimalik suunata e-kirju mitte ainult teisele e-posti aadressile, vaid ka veebiaadressile (URL kujul https://example.com). See võimaldab e-kirja sisu töödelda veebiserveris.

Postkasti ja suunamisaadressi saab URL’ile suunata seadete all:

Kui e-kiri suunatakse veebiaadressile, siis näeb vastavat rida Apache access logis:

mail.example.com 2024-05-16T17:51:56.636198Z 85.234.244.85 59980 - - "POST / HTTP/1.1" 200 4927 "-" "zone-mta" 61555 host:mail.example.com (jh7ZNijq-0.060)Code language: JavaScript (javascript)

E-kirja sisu saadetakse POST päringuga MIME formaadis väljal mail_to_http, mida saab PHP-s lugeda järgmiselt:

$mail = $_POST['mail_to_http'];Code language: PHP (php)

Nüüd kus kiri on saadetud enda veebiserveris asuvasse rakendusse, on võimalik vastavalt oma äranägemise järgi sellega edasi tegeleda. Kirja sisu lahti võtmine on veidi keerulisem ning toome siinkohal ühe näite, kuidas seda parsida ning mõned tähtsamad osad välja võtta.

E-kirja töötlemine PHP-s

E-kirja sisu lahtivõtmiseks on kõige lihtsam kasutada olemasolevaid teeke. Näiteks saab kasutada php-mime-mail-parser/php-mime-mail-parser teeki, mis nõuab Mailparse PHP moodulit. See moodul on Zone veebimajutuses saadaval, kuid mitte vaikimisi aktiveeritud. Selle saab aktiveerida virtuaalserveri halduses, valides vastava (alam)domeeni PHP seadete all PHP laiendused ja salvestades muudatuse. Muudatus jõustub viie minuti jooksul.

Järgmiseks loome kataloogi nimega mail, mille sisse omakorda kataloogi public. Public kataloogi suuname alam/peadomeeni, kuhu tuleb ka index.php fail.

mail kataloogis initsialiseerime Composer’i:

composer init

Seejärel küsib composer mõned küsimused. Näidise puhul piisab kui vastata ainult Author ja Package Type küsimustele. Esimse puhul võib sisestada oma nime ning teise puhul sobib “project”. Kui composer on initsialiseeritud, siis paigaldame eelmainitud teegi käsuga

composer require php-mime-mail-parser/php-mime-mail-parserCode language: JavaScript (javascript)

Loome public kausta index.php faili järgmise sisuga:

<?php
    
require '../vendor/autoload.php';

use PhpMimeMailParser\Parser;

$mailToHttp = $_POST['mail_to_http'];

// parsime kirja sisu
$parser = new Parser();
$message = $parser->setText($mailToHttp);

// valime soovitud väärtused
$from = $message->getHeader('from');
$subject = $message->getHeader('subject');
$bodyText = $message->getMessageBody();
$bodyHtml = $message->getMessageBody('html');Code language: PHP (php)

Lõplik kataloogistruktuur näeb välja järgmine:

composer.json
composer.lock
public/
    index.php
vendor/
  ...Code language: PHP (php)

Näidisskriptis on vajalikud header’id võetud küll MIME parsimise teel. Lihtsamateks skriptideks on võimalik from/to kätte saad ka otse $_POST['from'] ja $_POST['to'] ning päised on massiivina $_POST['headers'] pesas.

Turvalisus

Veebiskripti turvalisuse suurendamiseks saab lisada HTTP basic auth ja suunamise URL-i koos vastava osaga kujul https://kasutaja:salasõna@example.com.

Kokkuvõte

E-kirjade suunamine ja töötlemine veebiserveris võimaldab automatiseerida mitmesuguseid protsesse. Käesolev juhend näitas, kuidas seadistada e-kirjade suunamine, kuidas neid veebiserveris töödelda ja kuidas kasutada selleks PHP teeke. Edasine sõltub juba konkreetsetest vajadustest, olgu selleks andmete sisestamine andmebaasi või edasisaatmine API kaudu kolmandale teenusele.

Populaarsed postitused

Common Mark Certificate: Rohkem võimalusi e-posti nähtavuse ja turvalisuse tõstmiseks

Common Mark Certificate: Rohkem võimalusi e-posti nähtavuse ja turvalisuse tõstmiseks

Kaarel Urva
CMC ehk Common Mark Certificate võimaldab sinu ettevõttel tõsta oma e-kirjade usaldusväärsust ja nähtavust, kuvades brändi logo otse e-kirjade kõrval...
Partner soovitab: iga meiliturundaja vajab head maandumislehte

Partner soovitab: iga meiliturundaja vajab head maandumislehte

Smaily
Sul on suurepärane toode või teenus. Oled selle reklaamimiseks loonud professionaalse turundusmeili või uudiskirja, kuid tulemusi ei paista? Sageli...
Veebilehe kolimine ilma peavaluta – mabrik.ee leht Zones 10 minutiga

Veebilehe kolimine ilma peavaluta – mabrik.ee leht Zones 10 minutiga

Kas veebi kolimine uude majutusserverisse kõlab sama mõnusalt kui diivani tassimine viiendale korrusele? Tegelikult on see hoopis lihtsam, kui arvata...
Zone ja Cats Help koostöös: aitame üheskoos kassidel kodu leida

Zone ja Cats Help koostöös: aitame üheskoos kassidel kodu leida

Nikita Tikhomirov
Kas mäletad hetke, mil kohtusid kassiga, kelle iseloom ja olek olid nii erilised, et hetkega oli sinu päev helgem? Just see soe tunne ühendab inimesi...