Nors internete yra apstu įvairių nemokamų el. pašto paslaugų tiekėjų su patogia vartotojo sąsaja, kuriuos naudojame kasdien, kaip Gmail, Yahoo, RediffMail ir pan., tačiau kartais gali prireikti ir laiškų siuntimo funkcijos tiesiai iš komandinės eilutės. Pavyzdžiui, jeigu norite siųsti laiškus pasinaudojant skriptais, periodinėmis užduotimis ar shell'u.
Komandos sendmail, mail ir mutt naudojamos pvienių laiškų siuntimu. Naudojant PHP skriptus galima siųsti didesnius kiekius laiškų iš komandinės eilutės.
Šioje pamokoje pateiksime informaciją su apie kelis dažniausiai naudojamus būdus siųsti laiškas per Linux komandinę eilutę.
0. Preliminarūs reikalavimai
Linux distribucijos serveris.
1. Naudojant sendmail komandą
Sendmail yra viena populiariausių pašto siuntimo tarnybų Linux serveriuose. Šios programos diegimą bei konfogūravimą rasite kitoje mūsų pamokoje. Naudojant sendmail komandą galima siųsti laišksu tiesiai per komandinę eilutę. Visų pirmą susikurkite failą, kuriame bus nurodoma laiško tema ir tekstas:
nano /tmp/email.txt
Jame įveskite, kaip pavyzdžiui:
Subject: Tema
Tekstas
Dabar galite atlikti laiško siuntimą per komandinę eilutę:
sendmail [email protected] < /tmp/email.txt
Pastaba: laiškai nėra siunčiami, jeigu naudojami lietuviški simboliai.
2. Naudojant mail komandą
mail yra dažniausiai naudojama komanda norint siųsti laiškus iš terminalo. Jos naudojimui reikia įdiekti paketą mailutils:
Ubuntu/Debian:
apt install mailutils
CentOS/Redhat:
yum install mailx
Pateikiame kelis pavyzdžius, kaip ši komanda gali būti naudojama:
mail -s "Testo tema" [email protected] < /dev/null
Parametras -s naudojamas tam, kad galima būtų nurodyti laiško temą;
/dev/null - kelias iki failo, kuriame yra laiško turinys.
Taip pat galite siųsti laiškus prisegant failą su parametru -a, jeigu naudojate mailx ir -A, jeigu mailutils:
mail -A /opt/backup.sql -s "Kopijos failas" [email protected] < /dev/null
Dar galite siųsti laiškus keliems gavėjams atskiriant juos su kableliu:
mail -s "Testo tema" [email protected],[email protected] < /dev/null
3. Naudojant mutt komandą
Mutt dažniausiai naudojama lokalių dėžučių laiškų skaitymui naudojant terminalą arba laiškų skaitymui POP/IMAP serverius naudojančiose sistemose. Šios komandos sintaksė labai panaši į mail komandą. Norint naudoti mutt reikia įsidiegti papildomą paketą:
Ubuntu/Debian:
apt install mutt
CentOS/RHEL:
yum install -y mutt
Laiško siuntimui naudokite šią komandą:
mutt -s "Testo tema" [email protected] < /dev/null
Pridedant laišką:
mutt -s "Testo tema" -a /opt/backup.sql [email protected] < /dev/null
4. Laiškų siuntimas naudojant PHP skriptą
Norint siųsti laiškus per PHP, toks paketas turi būti įdiegtas į serverį, pvz.: LAMP (Linux, Apache, MySQL/MariaDB ir PHP).
Kai serveryje PHP programavimo kalbos paketas bei Apache paketai jau yra įdiegti, galite atlikti PHP failo kūrimą. Kaip pavyzdį, kuriame failą su pavadinimu siuntimas.php. Šis failas turi būti sukuriamas svetainės web failų direktorijoje /var/www/html/. Failo sukūrimui naudokite naudosime nano teksto redaktorių:
nano /var/www/html/siuntimas.php
Faile įkeliame tekstą:
<?php
$to_email = "siuntė[email protected]";
$subject = "Siuntimas su PHP";
$body = "Labas, tai testinis siuntimas su PHP scriptu";
$headers = "From: [email protected]";
if ( mail($to_email, $subject, $body, $headers)) {
echo("Sekmingai pasieke $to_email...");
} else {
echo("Siuntimas nepavyko...");
}
?>
Norint pradėti siuntimą iš komandinės eilutės, paleiskite komandą:
php sendEmail.php
5. Laiškų siuntimas naudojant PHP su HTML forma
Veikimui reikalingas PHP kodo bei Apache tarnybos veikimas.
Atliekame PHP failo kūrimą. Kaip pavyzdį, kuriame failą su pavadinimu siuntimas.php. Šis failas turi būti sukuriamas svetainės web failų direktorijoje /var/www/html/. Failo sukūrimui naudokite naudosime nano teksto redaktorių:
nano /var/www/html/siuntimas.php
Faile įkeliame tekstą, kurį rasite nuspaudę žemiau esančią nuorodą "PHP skripto kodas". Pakoreguokite nurodytas reikšmes prieš išsaugant.
Dabar galite atsidaryti svetainės adresą, kuriame bus forma ir ją užpildžius laiškas bus išsiunčiamas automatiškai:
http://localhost/sendEmail.php
PHP skripto kodas
PHP skripto kodas
<?php
if (!isset($_POST["submit"])) { ?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
To: <input type="text" name="gavėjo_adresas"><br>
From: <input type="text" name="siuntėjo_adresas"><br>
Subject: <input type="text" name="laiško_tema"><br>
Message: <textarea rows="10" cols="20" name="tekstas"></textarea><br>
<input type="submit" name="Siųsti" value="Siųsti laišką">
</form>
<?php
} else {
if (isset($_POST["gavėjo_adresas"])) {
$to_email = $_POST["gavėjo_adresas"];
$from_email = $_POST["siuntėjo_adresas"];
$subject = $_POST["tema"];
$body = $_POST["tekstas"];
if ( mail($to_email, $subject, $body, $headers)) {
echo("Laiškas sėkmingai išsiųstas į $to_email...");
} else {
echo("Laiško siuntimas nepavyko...");
}
}
}
?>

