Funkce mail () je vestavěná funkce PHP, která se používá k odesílání e-mailů z localhost. K odesílání e-mailů pomocí této funkce jsou ale zapotřebí některé konfigurace. Pro nastavení konfigurace budete potřebovat informace o skutečném poštovním serveru. Můžete použít informace o poštovním serveru vašeho aktivního hostitelského serveru nebo můžete použít libovolné informace o poštovním serveru zdarma. V tomto výukovém programu se k odesílání e-mailů pomocí funkce mail () používají účet Gmail a informace o serveru SMTP služby Gmail.
Konfigurace nastavení
Aby bylo možné nastavit konfiguraci, bude nutné upravit dva soubory: php.ini a pro konfiguraci poštovního serveru je vyžadován další soubor. Konfiguraci proveďte podle níže uvedených kroků. Mnoho balíčků je k dispozici v PHP pro zasílání e-mailů. msmtp je klient poštovního serveru PHP, který se v tomto kurzu používá k odesílání e-mailů pomocí funkce PHP mail ().
Kroky:
Spusťte následující příkaz k instalaci msmtp balíček na Ubuntu pro nastavení poštovního serveru:
$ sudo apt-get nainstalovat msmtpVytvořte konfigurační soubor s názvem / etc / msmtprc pomocí následujícího příkazu:
$ sudo nano / etc / msmtprcPřidejte do souboru následující obsah. Přidejte platnou e-mailovou adresu pro uživatel a platné heslo pro Heslo který bude použit k odeslání e-mailu. Nastavte e-mailovou adresu odesílatele pro formulář hodnota.
výchozí hodnotytls na
tls_starttls on
tls_trust_file / etc / ssl / certs / ca-certificates.crt
výchozí účet
hostitel smtp.gmail.com
port 587
ověřit na
uživatelské uživatelské jméno @ gmail.com
heslo uživatelské_heslo
ze sender_email_address
Spuštěním následujících příkazů nastavte vlastnictví a oprávnění pro Soubor / etc / msmtprc:
$ sudo chown fahmida / etc / msmtprc$ sudo chmod 0600 / etc / msmtprc
Otevři php.ini soubor a upravte následující obsah s následujícími hodnotami:
SMTP = SMTP.gmail.comsmtp_port = 587
sendmail_path = "/ usr / bin / msmtp -t -i"
Syntax:
bool mail (řetězec $ do, řetězec $ předmět, řetězec $ zpráva [, smíšený $ additional_headers [, řetězec $ additional_parameters]])Tato funkce může trvat čtyři argumenty. První argument přebírá e-mailovou adresu příjemce. Druhý argument přebírá předmět e-mailu. Třetí argument přebírá tělo e-mailu. Poslední argument je volitelný a obsahuje další informace o e-mailu jako řetězec nebo pole.
Odesílání e-mailů pomocí funkce mail ()
V této části tutoriálu jsou uvedeny různé příklady odesílání e-mailů pomocí funkce mail () v PHP.
Příklad 1: Odeslání jednoduchého textového e-mailu
Tento příklad ukazuje, jak lze odeslat jednoduchý textový e-mail pomocí funkce mail (). Vytvořte soubor PHP s následujícím skriptem.
Musíte nastavit platnou e-mailovou adresu pro $ až proměnná pro získání výstupu následujícího skriptu. Jako text zprávy je nastaven jednoduchý text.
// Nastavení e-mailové adresy příjemce$ to = "[e-mail chráněn]";
// Nastavte předmět e-mailu
$ subject = "Jedná se o testovací e-mail";
// Nastavit tělo e-mailu
$ message = "Testuje se tělo e-mailu";
// Nastavení informací o záhlaví
$ headers = "Od: [chráněno e-mailem] \ r \ n";
$ záhlaví .= "Odpověď komu: [chráněno e-mailem] \ r \ n";
// Odeslání e-mailu pomocí funkce zprávy mail ()
if (mail ($ do, $ předmět, $ zpráva, $ záhlaví))
echo "E-mail byl úspěšně odeslán.\ r \ n ";
jiný
echo "E-mail nebyl odeslán.
";
?>
Pokud funkce mail () funguje správně, po spuštění skriptu z webového serveru se zobrazí následující výstup.
Následující výstup se zobrazí, pokud zaškrtnete doručenou poštu e-mailové adresy, která byla nastavena jako e-mailová adresa příjemce.
Příklad 2: Odeslání e-mailu ve formátu HTML
Tento příklad ukazuje, jak lze odeslat e-mail ve formátu HTML pomocí funkce mail (). Vytvořte soubor PHP s následujícím skriptem.
$ zpráva proměnná je inicializována s obsahem HTML, který bude odeslán jako tělo e-mailu. Je to uvedeno v $ záhlaví proměnná, že obsah e-mailu je HTML.
// Nastavení e-mailové adresy příjemce$ to = "[e-mail chráněn]";
// Nastavte předmět e-mailu
$ subject = 'Registrace byla úspěšná';
// Nastavit tělo e-mailu
$ message = '
Vaše registrace je úspěšně dokončena.
uživatelské jméno = 20. Fahmida
heslo = aswQ34ghqw
';
// Nastavit návrat vozíku
$ nl = "\ r \ n";
// Nastaví záhlaví typu obsahu
$ headers = 'MIME verze: 1.0 '.$ nl;
$ záhlaví .= 'Typ obsahu: text / html; charset = iso-8859-1 '.$ nl;
// Nastavit další informace o záhlaví
$ záhlaví .= 'Komu: Mehrab Hossain'.$ nl;
$ záhlaví .= 'Od: Správce'.$ nl;
$ záhlaví .= 'Cc: [email protected]'.$ nl;
// Odeslání e-mailu pomocí funkce zprávy mail ()
if (mail ($ do, $ předmět, $ zpráva, $ záhlaví))
echo "E-mail byl úspěšně odeslán.\ r \ n ";
jiný
echo "E-mail nebyl odeslán. \ r \ n ";
?>
Pokud funkce mail () funguje správně, po spuštění skriptu z webového serveru se zobrazí následující výstup.
Následující výstup se zobrazí, pokud zaškrtnete doručenou poštu e-mailové adresy, která byla nastavena jako e-mailová adresa příjemce.
Příklad 3: Odeslání e-mailu s přílohou
Tento příklad ukazuje, jak lze odeslat e-mail připojením textového souboru. Vytvořte textový soubor s následujícím skriptem.
Obsah textového souboru se čte a kóduje před připojením a funkce md5 () se ve skriptu používá k vygenerování náhodného čísla pro smíšený obsah. Jsou přidány všechny potřebné informace $ záhlaví a $ zpráva proměnné před odesláním e-mailu.
// Nastavení e-mailové adresy příjemce$ to = "[e-mail chráněn]";
// Nastavte předmět e-mailu
$ subject = "Příloha souboru";
// Nastavit návrat vozíku
$ nl = "\ r \ n";
// Nastaví náhodný hash, který bude použit pro smíšený obsah
oddělovač $ = md5 (time ());
// Číst obsah přiloženého souboru
$ název souboru = 'myfile.txt ';
$ content = file_get_contents ($ název souboru);
$ content = chunk_split (base64_encode ($ content));
// Nastavení e-mailové zprávy s informacemi o příloze
$ message = "-" . oddělovač $ . $ nl;
$ zpráva .= "Content-Type: text / plain; charset =" iso-8859-1 "" . $ nl;
$ zpráva .= "Content-Transfer-Encoding: 8bit" . $ nl;
$ zpráva .= "Textový soubor je připojen k e-mailu." . $ nl;
$ zpráva .= "-" . oddělovač $ . $ nl;
$ zpráva .= "Content-Type: application / octet-stream; name =" " . $ název souboru . „“ „ . $ nl;
$ zpráva .= "Content-Transfer-Encoding: base64" . $ nl;
$ zpráva .= "Dispozice obsahu: příloha" . $ nl;
$ zpráva .= $ obsah . $ nl;
$ zpráva .= "-" . oddělovač $ . „-“;
// Nastaví záhlaví typu obsahu
$ headers = 'MIME verze: 1.0 '.$ nl;
$ záhlaví .= "Od: [chráněno e-mailem]".$ nl;
$ záhlaví .= "Odpověď komu: [chráněn e-mailem" ".$ nl;
$ záhlaví .= "Typ obsahu: vícedílný / smíšený; hranice =" " . oddělovač $ . „“ „ .$ nl;
// Odeslání e-mailu pomocí funkce zprávy mail ()
if (mail ($ do, $ předmět, $ zpráva, $ záhlaví))
echo "E-mail byl úspěšně odeslán s přílohou.\ r \ n ";
jiný
echo "E-mail nebyl odeslán. \ r \ n ";
?>
Pokud funkce mail () funguje správně, po spuštění skriptu z webového serveru se zobrazí následující výstup.
Následující výstup se zobrazí, pokud zaškrtnete doručenou poštu e-mailové adresy, která byla nastavena jako e-mailová adresa příjemce.
Závěr
V PHP existuje mnoho způsobů odesílání e-mailů. Funkce PHP mail () po nastavení konfigurace nefunguje správně na Ubuntu. Tento výukový program ukazuje potřebné konfigurace a způsob odesílání e-mailů pomocí funkce PHP mail ().