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ť msmtpVytvorte konfiguračný súbor s názvom / etc / msmtprc pomocou nasledujúceho príkazu:
$ sudo nano / etc / msmtprcPridajte 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é hodnotytls 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.comsmtp_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 ().