Jak odeslat e-mail v PHP. Kompletní průvodce

Mnoho online aplikací vyžaduje možnost odesílání e-mailů v PHP. Jazyk PHP nabízí celou řadu funkcí a knihoven k provedení tohoto úkolu, ať už chcete odeslat prostý textový e-mail nebo e-mail ve formátu HTML s bohatým obsahem. V tomto příspěvku se podíváme na to, jak odesílat e-maily v jazyce PHP, včetně toho, jak odesílat e-maily v jazyce HTML, do služby Gmail, ze serveru SMTP a jak pochopit funkci mail() jazyka PHP.

1. Odesílání e-mailů v PHP:

K odesílání e-mailů je třeba použít vestavěnou funkci mail() jazyka PHP. Syntaxe této funkce je následující: “‘ mail (“‘ $to, “‘ $subject, “‘ $message, “‘ $headers); Kde: V tomto případě:

– $to: E-mailová adresa příjemce.

– $subject: Předmět e-mailu.

– $message: Tělo e-mailu. Další hlavičky jako From, Cc, Bcc atd. jsou uloženy v proměnné $headers. 2. Odesílání e-mailů ve formátu HTML v jazyce PHP:

Pokud chcete pomocí jazyka PHP odesílat e-maily ve formátu HTML, musí být v parametru $headers uvedeny správné hlavičky. Např:

„`

$headers.= „Content-type:text/html;charset=UTF-8“. „rn“;

“‘

$headers.= „MIME-Version: 1.0“ Verze MIME a typ obsahu jsou v tomto případě nastaveny na HTML. Text e-mailu pak lze formátovat vložením značek HTML do argumentu $message.

3. Odesílání e-mailů do služby Gmail:

Pro odesílání e-mailů do služby Gmail z jazyka PHP je nutné nastavit skript PHP tak, aby používal server SMTP služby Gmail. Abyste toho dosáhli, musíte v nastavení účtu Gmail zapnout funkci „Méně zabezpečené aplikace“. Pro zjednodušení odesílání e-mailů pomocí serveru SMTP služby Gmail můžete také použít knihovnu, jako je PHPMailer nebo SwiftMailer.

4. Odesílání e-mailů pomocí PHP ze serveru SMTP:

E-maily můžete odesílat i pomocí jiných serverů SMTP, než je Gmail. To je užitečné, pokud chcete použít poskytovatele služeb SMTP třetí strany nebo vlastní e-mailový server. Odesílání e-mailů přes různé servery SMTP podporují knihovny jako PHPMailer a SwiftMailer tím, že nabízejí příslušné konfigurační parametry včetně adresy serveru, čísla portu, uživatelského jména a hesla.

Závěrem lze říci, že pomocí metody mail() je odesílání e-mailů v jazyce PHP jednoduché. E-maily lze formátovat jako HTML nebo odesílat v prostém textu pomocí příslušných hlaviček. Ke zvládnutí složitosti protokolu SMTP při odesílání e-mailů do služby Gmail nebo při použití jiného serveru SMTP použijte knihovny, jako je PHPMailer nebo SwiftMailer. Pochopením těchto myšlenek můžete do svých aplikací PHP rychle přidat možnosti odesílání e-mailů.

FAQ
Jak posílat e-maily v PHP bez SMTP?

K odeslání e-mailu bez použití protokolu SMTP lze použít funkci PHP mail(). Pomocí funkce mail() vašeho skriptu PHP můžete odesílat e-maily bez použití externího serveru SMTP. Zde je ukázka, jak odeslat e-mail pomocí funkce mail():

„`php

$to = „[email protected]“;

$subject = „Hello from PHP“;

$message = „This is a test email.“;

$headers = „From: [email protected]“;

$headers.= „Reply-To: [email protected]“;

$headers.= „MIME-Version: 1.0“;

$headers.= „Con Proměnná ‚$to‘ ve výše uvedeném kódu vyžaduje e-mailovou adresu příjemce, ‚$subject‘ obsahuje předmět e-mailu a ‚$message‘ obsahuje text zprávy. Další hlavičky, jako je e-mailová adresa odesílatele a typ obsahu, se nastavují pomocí proměnné ‚$headers‘.

E-maily můžete odesílat bez serveru SMTP třetí strany pomocí funkce mail() ve vašem skriptu PHP. Je důležité si uvědomit, že nastavení vašeho serveru a hostingového prostředí může mít vliv na to, jak úspěšná bude funkce mail().

Jak používat PHPMailer?

PHPMailer můžete využít následujícím postupem:

Nejprve si stáhněte PHPMailer: Pro začátek si můžete knihovnu PHPMailer stáhnout z oficiálního zdrojového kódu GitHub. Nejnovější verze PHPMailer je k dispozici na adrese https://github.com/PHPMailer/PHPMailer.

2. Integrujte PHPMailer do svého podniku: Zkopírujte složku „PHPMailer“ z rozbaleného balíčku PHPMailer do adresáře projektu.

3. Přidejte třídu PHPMailer: Pomocí příkazu require zahrňte soubor PHPMailerAutoload.php do svého skriptu PHP. Tímto souborem se načtou všechny třídy a funkce PHPMailer. ‚path/to/PHPMailer/PHPMailerAutoload.php‘ je požadavek pro PHP;

“‘

4. Vytvořte novou instanci třídy PHPMailer inicializací nového objektu PHPMailer.

„`php

$mail = new PHPMailer; * * * “‘ * * * 5. Nastavte nastavení SMTP: Pro odesílání e-mailů prostřednictvím serveru SMTP je nutné nastavit informace o serveru SMTP. Pokud například používáte SMTP Gmail, můžete použít následující nastavení:

„`php

“‘

$mail->isSMTP();

$mail->Host =’smtp.gmail.com‘;

$mail->SMTPAuth = true;

$mail->Username = ‚[email protected]‘;

$mail->Password = ‚your-password‘;

$mail->SMTPSecure = ‚tls‘;

$mail->Port = 587;

“‘

[email protected]‘ a ‚your-password‘ by měly být změněny tak, aby odpovídaly vaší e-mailové adrese a heslu Gmail.

Nastavte údaje a obsah e-mailu: Nastavte odesílatele, příjemce, předmět, tělo a další požadované informace o e-mailu.

„`php $mail->addAddress(‚[email protected]‘, ‚Jméno příjemce‘); $mail->setFrom(‚[email protected]‘, ‚Vaše jméno‘); $mail->Subject = ‚Předmět vašeho e-mailu‘; $mail->Body = ‚Tělo vašeho e-mailu‘;

[email protected]‘ by mělo být změněno na vaši adresu Gmail a’[email protected]‘ by mělo být změněno na e-mailovou adresu příjemce.

7. Přílohy (nepovinné): Pro přidání příloh můžete použít metodu ‚addAttachment()‘.

„`php Path/to/file.pdf, ‚Attachment Name‘, $mail->addAttachment; “‘

Změňte „path/to/file.pdf“ na umístění vašeho souboru PDF a „Attachment Name“ na název, který chcete příloze dát.

8. Odešlete e-mail: Pro odeslání e-mailu použijte metodu „send()“.

„`php Pokud ($mail->send()) vrátí true, echo „E-mail byl úspěšně odeslán“; v opačném případě echo „Chyba při odesílání e-mailu: $mail->ErrorInfo;“ Pokud je e-mail úspěšně odeslán, zobrazí tento kód zprávu o úspěchu. V opačném případě se zobrazí oznámení popisující specifika chyby.

Nezapomeňte nahradit skutečné pověření, adresy a obsah e-mailu nastavením zástupných znaků.