E-kirja töötlemine veebiserveris

Ingmar Aasoja
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

Partner soovitab: milliseid makseviise kassas pakkuda?

Montonio
E-kaubanduse maailm on teinud suure hüppe edasi ajast, mil maksevõimalused piirdusid sularaha ja keeruliste pangaülekannetega. Tänapäeval võib makseprotsess...

Veebimajutus algajatele: Zone teenustega saad kodulehe valmis kiiresti ja turvaliselt

Nikita
Oma kodulehe loomine võib tunduda keeruline, eriti kui sul puudub varasem kokkupuude serverite, domeenide või veebidisainiga. Zone – Eesti juhtivaid...

Partner soovitab: Kuidas kirjutada tõhusaid e-kirju ehk juhend meiliturundusega alustajale

Smaily
Meiliturundus annab tiheda konkurentsiga ärimaailmas võimaluse teistest eristuda ja oma kliente kaasata. Kui oled selles valdkonnas alles alustamas,...

Kas Google kaob ehk kuidas AI-optimeerida oma kodulehte ChatGPT-ajastul

Triin
Me peame taas rääkima tehisintellektist. Täpsemalt AI-st kui otsingumootorist ja sellest, kuidas see mõjutab sinu ettevõtet. Kuigi ligi 90% ettevõtetest...