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

CloudFest: pilvetehnoloogia suursündmus otse Europa-Pargist

Nikita Tikhomirov
Kui rääkida Euroopa suurimast ja mõjukaimast pilvetehnoloogia ning interneti infrastruktuuri sündmusest, siis peaks iga IT-valdkonna ettevõtte kalendris...

Nüüd Zones: Varist ehk veelgi tõhusam pahavarakaitse

Ardi Jürgens
Kurjategijate jaoks on e-post endiselt lihtsaim viis enamikesse ettevõtetesse inflitreerumiseks. Meie Premium e-posti teenuste kasutajad võivad aga hingata...

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 Tikhomirov
Oma kodulehe loomine võib tunduda keeruline, eriti kui sul puudub varasem kokkupuude serverite, domeenide või veebidisainiga. Zone – Eesti juhtivaid...