Nápověda CZECHIA.COM

Zákaznická a technická podpora 24/7

Odesílání e-mailů pomocí PHPMaileru a SMTP

Pro bezpečné a spolehlivé odesílání e-mailů z vašeho webu doporučujeme používat knihovnu PHPMailer, která umožňuje přímé připojení k SMTP serveru (smtp.zoner.com). Tím se obejde závislost na PHP funkci mail(), která může být z bezpečnostních důvodů na hostingu zakázána.

1. Co budete potřebovat

  • Webhosting s PHP
  • Vytvořený e-mail (např. info@vasedomena.cz)
  • Knihovnu PHPMailer (viz níže)

2. Stažení PHPMaileru

Stáhněte si aktuální verzi knihovny z oficiálního repozitáře: https://github.com/PHPMailer/PHPMailer

Příklady použití knihovny PHPMailer najdete na adrese https://github.com/PHPMailer/PHPMailer/tree/master/examples 

Po stažení ZIP souboru rozbalte archiv a nahrajte složku src/ na server (např. do složky mailer/).

3. Ukázkový skript pro odeslání e-mailu

Níže uvedený kód použijte na svém webu. Nezapomeňte upravit přihlašovací údaje k vaší e-mailové schránce.

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'mailer/PHPMailer.php'; require 'mailer/SMTP.php';
require 'mailer/Exception.php';

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host = 'smtp.zoner.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'info@vasedomena.cz';    // vaše e-mailová adresa
    $mail->Password = 'VaseEmailoveHeslo';     // heslo ke schránce
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;

    $mail->setFrom('info@vasedomena.cz', 'Webový formulář');
    $mail->addAddress('prijemce@nekde.cz', 'Příjemce');

    $mail->isHTML(true);
    $mail->Subject = 'Testovací zpráva';
    $mail->Body    = 'Toto je <strong>testovací e-mail</strong> odeslaný přes SMTP.';
    $mail->AltBody = 'Toto je testovací e-mail odeslaný přes SMTP.';

    $mail->send();
    echo 'Zpráva byla úspěšně odeslána.';
} catch (Exception $e) {
    echo 'Chyba při odesílání: ' . $mail->ErrorInfo;
}
?>

4. SMTP nastavení

  • SMTP server: smtp.zoner.com
  • Port: 587
  • Šifrování: STARTTLS
  • Uživatel: vaše e-mailová adresa
  • Heslo: heslo ke schránce

5. Často kladené dotazy

  1. Musím PHPMailer instalovat?
    Ano. PHPMailer je externí knihovna a není součástí vašeho hostingu. Viz bod 2 výše.
  2. Co když SMTP připojení selhává?pro diakgnostiku použijte funkci:
    $mail->SMTPDebug = SMTP::DEBUG_CONNECTION;
    zdroj: https://github.com/PHPMailer/PHPMailer/blob/master/examples/ssl_options.phps
  3. Funguje to i bez mail() funkce?
    Ano, protože PHPMailer odesílá zprávy přes přímé připojení k SMTP serveru.