Funkcija mail () je vgrajena funkcija PHP, ki se uporablja za pošiljanje e-pošte z lokalnega gostitelja. Toda nekatere konfiguracije zahtevajo pošiljanje e-pošte s to funkcijo. Za nastavitev konfiguracije boste potrebovali prave podatke o poštnem strežniku. Uporabite lahko podatke o poštnem strežniku vašega aktivnega strežnika za gostovanje ali katere koli brezplačne podatke o poštnem strežniku. V tej vadnici se za pošiljanje e-pošte s funkcijo mail () uporabljajo Gmail račun in podatki o strežniku SMTP za Gmail.
Nastavitvena konfiguracija
Za nastavitev konfiguracije bo treba spremeniti dve datoteki: php.ini datoteka in za nastavitev poštnega strežnika je potrebna druga datoteka. Za nastavitev konfiguracije sledite spodnjim korakom. V paketu PHP je na voljo veliko paketov za pošiljanje e-pošte. msmtp je odjemalec poštnega strežnika PHP, ki se v tej vadnici uporablja za pošiljanje e-pošte s pomočjo funkcije PHP mail ().
Koraki:
Zaženite naslednji ukaz, da namestite msmtp paket v Ubuntuju za nastavitev poštnega strežnika:
$ sudo apt-get install msmtpUstvarite konfiguracijsko datoteko z imenom / etc / msmtprc z naslednjim ukazom:
$ sudo nano / etc / msmtprcV datoteko dodajte naslednjo vsebino. Dodajte veljaven e-poštni naslov za uporabnik in veljavno geslo za geslo ki bo uporabljen za pošiljanje e-pošte. Nastavite e-poštni naslov pošiljatelja za oblika vrednost.
privzete vrednostitls naprej
tls_starttls vklopljen
tls_trust_file / etc / ssl / certs / ca-certifikati.crt
privzeti račun
gostitelj smtp.gmail.com
vrata 587
prijava naprej
uporabniško ime @ gmail.com
geslo user_password
od sender_email_address
Zaženite naslednje ukaze, da nastavite lastništvo in dovoljenje za / etc / msmtprc:
$ sudo chown fahmida / etc / msmtprc$ sudo chmod 0600 / etc / msmtprc
Odprite php.ini datoteko in spremenite naslednjo vsebino z naslednjimi vrednostmi:
SMTP = smtp.gmail.comsmtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"
Sintaksa:
bool mail (niz $ to, niz $ tema, niz $ sporočilo [, mešani $ Additional_headers [, niz $ Additional_parameters]])Ta funkcija ima lahko štiri argumente. Prvi argument zajema e-poštni naslov prejemnika. Drugi argument je predmet e-pošte. Tretji argument je telo e-pošte. Zadnji argument je neobvezen in vsebuje dodatne informacije o e-poštnem sporočilu kot niz ali matriko.
Pošiljanje e-pošte s funkcijo mail ()
V tem poglavju vadnice so prikazani različni primeri pošiljanja e-pošte s pomočjo funkcije PHP mail ().
Primer 1: Pošljite preprosto besedilno e-pošto
Ta primer prikazuje, kako lahko preprosto besedilno e-poštno sporočilo pošljete s funkcijo mail (). Ustvarite datoteko PHP z naslednjim skriptom.
Nastaviti morate veljaven e-poštni naslov za $ do spremenljivko, da dobite rezultat naslednjega skripta. Preprosto besedilo je nastavljeno kot telo sporočila.
// Nastavite e-poštni naslov prejemnika$ to = "[e-pošta zaščitena]";
// Nastavite temo e-poštnega sporočila
$ subject = "To je testno e-poštno sporočilo";
// Nastavitev telesa e-pošte
$ message = "Preizkuša telo e-pošte";
// Nastavite informacije o glavi
$ headers = "Od: [zaščiteno po e-pošti] \ r \ n";
$ glave .= "Odgovor na: [zaščiten po e-pošti] \ r \ n";
// Pošiljanje e-pošte s funkcijo sporočila mail ()
če (pošta ($ na, $ tema, $ sporočilo, $ glave))
echo "E-pošta je bila uspešno poslana.\ r \ n ";
sicer
echo "E-pošta ni bila poslana.
";
?>
Naslednji izhod se prikaže po zagonu skripta s spletnega strežnika, če funkcija mail () deluje pravilno.
Naslednji izhod se prikaže, če preverite mapo »Prejeto« e-poštnega naslova, ki je bil nastavljen kot e-poštni naslov prejemnika.
2. primer: Pošljite e-poštno sporočilo v obliki zapisa HTML
Ta primer prikazuje, kako lahko e-poštno sporočilo v obliki zapisa HTML pošljete s funkcijo mail (). Ustvarite datoteko PHP z naslednjim skriptom.
$ sporočilo spremenljivka se inicializira z vsebino HTML, ki bo poslana kot telo e-pošte. Omenjeno je v $ header spremenljivka, da je vsebina e-poštnega sporočila HTML.
// Nastavite e-poštni naslov prejemnika$ to = "[e-pošta zaščitena]";
// Nastavite temo e-poštnega sporočila
$ subject = 'Registracija uspešna';
// Nastavitev telesa e-pošte
$ message = '
Vaša registracija je uspešno zaključena.
uporabniško ime = fahmida20
geslo = aswQ34ghqw
';
// Nastavitev vrnitve kočije
$ nl = "\ r \ n";
// Nastavimo glavo Content-type
$ headers = 'Različica MIME: 1.0 '.$ nl;
$ glave .= 'Vrsta vsebine: besedilo / html; charset = iso-8859-1 '.$ nl;
// Nastavite dodatne informacije o glavah
$ glave .= 'Za: Mehrab Hossain'.$ nl;
$ glave .= 'Od: Administrator'.$ nl;
$ glave .= 'Kp: [e-pošta zaščitena]'.$ nl;
// Pošiljanje e-pošte s funkcijo sporočila mail ()
if (mail ($ na, $ subject, $ message, $ headers))
echo "E-pošta je bila uspešno poslana.\ r \ n ";
sicer
echo "E-pošta ni bila poslana. \ r \ n ";
?>
Naslednji izhod se prikaže po zagonu skripta s spletnega strežnika, če funkcija mail () deluje pravilno.
Naslednji izhod se prikaže, če preverite mapo »Prejeto« e-poštnega naslova, ki je bil nastavljen kot e-poštni naslov prejemnika.
3. primer: Pošljite e-poštno sporočilo s prilogo
Ta primer prikazuje, kako lahko e-pošto pošljete tako, da priložite besedilno datoteko. Ustvarite besedilno datoteko z naslednjim skriptom.
Vsebina besedilne datoteke se prebere in kodira pred prilogo, funkcija md5 () pa se v skriptu uporablja za ustvarjanje naključne številke za mešano vsebino. Vse potrebne informacije so dodane v $ glave in $ sporočilo spremenljivke pred pošiljanjem e-pošte.
// Nastavite e-poštni naslov prejemnika$ to = "[e-pošta zaščitena]";
// Nastavite temo e-poštnega sporočila
$ subject = "Priloga datoteke";
// Nastavitev vrnitve kočije
$ nl = "\ r \ n";
// Nastavite naključno razpršitev, ki se bo uporabljala za mešano vsebino
$ ločilo = md5 (čas ());
// Preberite vsebino priložene datoteke
$ filename = 'moja datoteka.txt ';
$ content = file_get_contents ($ ime datoteke);
$ content = chunk_split (base64_encode ($ content));
// Nastavite e-poštno sporočilo z informacijami o priponki
$ message = "-" . ločilo $ . $ nl;
$ sporočilo .= "Content-Type: text / plain; charset =" iso-8859-1 "" . $ nl;
$ sporočilo .= "Kodiranje prenosa vsebine: 8-bitna" . $ nl;
$ sporočilo .= "E-poštnemu sporočilu je priložena besedilna datoteka." . $ nl;
$ sporočilo .= "-" . ločilo $ . $ nl;
$ sporočilo .= "Content-Type: application / octet-stream; name =" " . $ ime datoteke . "" " . $ nl;
$ sporočilo .= "Kodiranje prenosa vsebine: base64" . $ nl;
$ sporočilo .= "Content-Disposition: priloga" . $ nl;
$ sporočilo .= $ vsebine . $ nl;
$ sporočilo .= "-" . ločilo $ . "-";
// Nastavimo glavo Content-type
$ headers = 'Različica MIME: 1.0 '.$ nl;
$ glave .= "Od: [e-pošta zaščitena]".$ nl;
$ glave .= "Odgovor na: [zaščiten po e-pošti]".$ nl;
$ glave .= "Vrsta vsebine: večdelna / mešana; meja =" " . ločilo $ . "" " .$ nl;
// Pošiljanje e-pošte s funkcijo sporočila mail ()
if (mail ($ na, $ subject, $ message, $ headers))
echo "E-pošta je bila uspešno poslana s prilogo.\ r \ n ";
sicer
echo "E-pošta ni bila poslana. \ r \ n ";
?>
Naslednji izhod se prikaže po zagonu skripta s spletnega strežnika, če funkcija mail () deluje pravilno.
Naslednji izhod se prikaže, če preverite mapo »Prejeto« e-poštnega naslova, ki je bil nastavljen kot e-poštni naslov prejemnika.
Zaključek
V PHP obstaja veliko načinov za pošiljanje e-pošte. Funkcija PHP mail () po nastavitvi konfiguracije v Ubuntuju ne deluje pravilno. Ta vadnica prikazuje potrebne konfiguracije in način pošiljanja e-pošte s pomočjo funkcije PHP mail ().