php

Použití funkce mail () v PHP na Ubuntu

Použití funkce mail () v PHP na Ubuntu

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 msmtp

Vytvořte konfigurační soubor s názvem / etc / msmtprc pomocí následujícího příkazu:

$ sudo nano / etc / msmtprc

Př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í hodnoty
tls 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.com
smtp_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 ().

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...