php

Použitie funkcie mail () v PHP na Ubuntu

Použitie funkcie mail () v PHP na Ubuntu

Funkcia mail () je zabudovaná funkcia PHP, ktorá sa používa na odosielanie e-mailov od localhost. Na odoslanie e-mailu pomocou tejto funkcie sú ale potrebné niektoré konfigurácie. Na nastavenie konfigurácie budete potrebovať informácie o skutočnom poštovom serveri. Môžete použiť informácie o poštovom serveri aktívneho hostiteľského servera alebo môžete použiť ľubovoľné bezplatné informácie o poštovom serveri. V tejto príručke sa na odosielanie e-mailov pomocou funkcie mail () používa účet Gmail a informácie o serveri SMTP služby Gmail.

Konfigurácia nastavenia

Na nastavenie konfigurácie budú potrebné dva súbory, ktoré je potrebné upraviť: php.ini a na konfiguráciu nastavenia poštového servera je potrebný ďalší súbor. Pri konfigurácii postupujte podľa krokov uvedených nižšie. Mnoho balíkov je k dispozícii v PHP na zasielanie e-mailov. msmtp je klient poštového servera PHP, ktorý sa v tomto výučbe používa na odosielanie e-mailov pomocou funkcie PHP mail ().

Kroky:

Spustením nasledujúceho príkazu nainštalujte msmtp balík na Ubuntu na nastavenie poštového servera:

$ sudo apt-get nainštalovať msmtp

Vytvorte konfiguračný súbor s názvom / etc / msmtprc pomocou nasledujúceho príkazu:

$ sudo nano / etc / msmtprc

Pridajte do súboru nasledujúci obsah. Pridajte platnú e-mailovú adresu pre server používateľ a platné heslo pre účet heslo ktoré sa použijú na odoslanie e-mailu. Nastavte e-mailovú adresu odosielateľa pre formulár hodnotu.

predvolené hodnoty
tls na
tls_starttls on
tls_trust_file / etc / ssl / certs / ca-certificates.crt
predvolený účet
hostiteľ smtp.gmail.com
port 587
zapnúť
používateľské meno používateľa @ gmail.com
heslo pouzivatelske_heslo
z adresy sender_email_address

Spustením nasledujúcich príkazov nastavte vlastníctvo a povolenie pre súbor / etc / msmtprc:

$ sudo chown fahmida / etc / msmtprc
$ sudo chmod 0600 / etc / msmtprc

Otvor php.ini súbor a upravte nasledujúci obsah s nasledujúcimi hodnotami:

SMTP = SMTP.gmail.com
smtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"

Syntax:

bool mail (reťazec $ do, reťazec $ predmet, reťazec $ správa [, zmiešaný $ additional_headers [, reťazec $ additional_parameters]])

Táto funkcia môže obsahovať štyri argumenty. Prvý argument berie e-mailovú adresu príjemcu. Druhý argument je predmetom e-mailu. Tretí argument zaberá telo e-mailu. Posledný argument je voliteľný a obsahuje ďalšie informácie o e-maile ako reťazec alebo pole.

Posielanie e-mailov pomocou funkcie mail ()

V tejto časti tutoriálu sú uvedené rôzne príklady odosielania e-mailov pomocou funkcie PHP (mail) ().

Príklad 1: Pošlite jednoduchý textový e-mail

Tento príklad ukazuje, ako možno poslať jednoduchý textový e-mail pomocou funkcie mail (). Vytvorte súbor PHP s nasledujúcim skriptom.

Musíte nastaviť platnú e-mailovú adresu pre $ až premenná na získanie výstupu nasledujúceho skriptu. Ako text správy sa nastaví jednoduchý text.

// Nastavte e-mailovú adresu príjemcu
$ to = "[chránený e-mailom]";
// Nastavte predmet e-mailu
$ subject = "Je to testovací e-mail";
// Nastaviť telo e-mailu
$ message = "Testuje sa telo e-mailu";
// Nastaví informácie v hlavičke
$ headers = "Od: [chránené e-mailom] \ r \ n";
$ hlavičky .= "Odpovedať komu: [chránené e-mailom] \ r \ n";
// Posielanie e-mailov pomocou funkcie správy mail ()
if (mail ($ do, $ predmet, $ správa, $ hlavičky))

echo "E-mail bol úspešne odoslaný.\ r \ n ";

else
echo "E-mail nebol odoslaný.
";

?>

Nasledujúci výstup sa zobrazí po spustení skriptu z webového servera, ak funkcia mail () funguje správne.


Nasledujúci výstup sa zobrazí, ak skontrolujete doručenú poštu e-mailovej adresy, ktorá bola nastavená ako e-mailová adresa príjemcu.

Príklad 2: Pošlite e-mail vo formáte HTML

Tento príklad ukazuje, ako je možné odoslať e-mail vo formáte HTML pomocou funkcie mail (). Vytvorte súbor PHP s nasledujúcim skriptom.

$ správa premenná je inicializovaná s obsahom HTML, ktorý bude odoslaný ako telo e-mailu. Je to uvedené v $ hlavička premenná, že obsah e-mailu je HTML.

// Nastavte e-mailovú adresu príjemcu
$ to = "[chránený e-mailom]";
// Nastavte predmet e-mailu
$ subject = 'Registrácia bola úspešná';
// Nastaviť telo e-mailu
$ message = '

Vaša registrácia je úspešne dokončená.


používateľské meno = fahmida20

heslo = aswQ34ghqw


";
// Nastaviť návrat vozíka
$ nl = "\ r \ n";
// Nastaví hlavičku typu obsahu
$ headers = 'MIME verzia: 1.0 '.$ nl;
$ hlavičky .= 'Typ obsahu: text / html; znaková sada = iso-8859-1 '.$ nl;
// Nastavte ďalšie informácie o hlavičkách
$ hlavičky .= 'Komu: Mehrab Hossain'.$ nl;
$ hlavičky .= 'Od: Správca'.$ nl;
$ hlavičky .= 'Kópia: [chránený e-mailom]'.$ nl;
// Posielanie e-mailov pomocou funkcie mail ()
if (mail ($ do, $ predmet, $ správa, $ hlavičky))
echo "E-mail bol úspešne odoslaný.\ r \ n ";

else
echo "E-mail nebol odoslaný. \ r \ n ";

?>

Nasledujúci výstup sa zobrazí po spustení skriptu z webového servera, ak funkcia mail () funguje správne.


Nasledujúci výstup sa zobrazí, ak skontrolujete doručenú poštu e-mailovej adresy, ktorá bola nastavená ako e-mailová adresa príjemcu.

Príklad 3: Pošlite e-mail s prílohou

Tento príklad ukazuje, ako je možné odoslať e-mail pripojením textového súboru. Vytvorte textový súbor s nasledujúcim skriptom.

Obsah textového súboru sa pred prílohou načíta a zakóduje a v skripte sa na vygenerovanie náhodného čísla pre zmiešaný obsah použije funkcia md5 (). Všetky potrebné informácie sú pridané do $ hlavičky a $ správa premenné pred odoslaním e-mailu.

// Nastavte e-mailovú adresu príjemcu
$ to = "[chránený e-mailom]";
// Nastavte predmet e-mailu
$ subject = "Príloha súboru";
// Nastaviť návrat vozíka
$ nl = "\ r \ n";
// Nastaví náhodný hash, ktorý sa použije pre zmiešaný obsah
$ oddeľovač = md5 (čas ());
// Prečítajte si obsah priloženého súboru
$ filename = 'myfile.TXT';
$ content = file_get_contents ($ názov súboru);
$ content = chunk_split (base64_encode ($ content));
// Nastaviť e-mailovú správu s informáciami o prílohe
$ message = "-" . oddeľovač $ . $ nl;
$ správa .= "Typ obsahu: text / obyčajný; charset =" iso-8859-1 "" . $ nl;
$ správa .= "Content-Transfer-Encoding: 8bit" . $ nl;
$ správa .= "Textový súbor je priložený k e-mailu.„ . $ nl;
$ správa .= "-" . oddeľovač $ . $ nl;
$ správa .= "Content-Type: application / octet-stream; name =" " . $ nazov souboru . „“ „ . $ nl;
$ správa .= "Content-Transfer-Encoding: base64" . $ nl;
$ správa .= "Obsahová dispozícia: príloha" . $ nl;
$ správa .= $ obsah . $ nl;
$ správa .= "-" . oddeľovač $ . „-“;
// Nastaví hlavičku typu obsahu
$ headers = 'MIME verzia: 1.0 '.$ nl;
$ hlavičky .= "Od: [chránený e-mailom]".$ nl;
$ hlavičky .= "Odpoveď komu: [chránený e-mailom]".$ nl;
$ hlavičky .= "Typ obsahu: viacdielny / zmiešaný; hranica =" " . oddeľovač $ . „“ „ .$ nl;
// Posielanie e-mailov pomocou funkcie mail ()
if (mail ($ do, $ predmet, $ správa, $ hlavičky))
echo "E-mail bol úspešne odoslaný s prílohou.\ r \ n ";

else
echo "E-mail nebol odoslaný. \ r \ n ";

?>

Nasledujúci výstup sa zobrazí po spustení skriptu z webového servera, ak funkcia mail () funguje správne.


Nasledujúci výstup sa zobrazí, ak skontrolujete doručenú poštu e-mailovej adresy, ktorá bola nastavená ako e-mailová adresa príjemcu.

Záver

V PHP existuje veľa spôsobov odosielania e-mailov. Funkcia PHP mail () v systéme Ubuntu nefunguje správne po nastavení konfigurácie. Tento výukový program ukazuje potrebné konfigurácie a spôsob odosielania e-mailov pomocou funkcie PHP mail ().

Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...
Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...