Přejít na obsah
Dokumentace

Tutoriál

Odesílání e-mailů z WordPressu přes Emailit

Posílejte e-maily z WordPressu, WooCommerce a kontaktních formulářů přes SMTP Emailitu s pluginem WP Mail SMTP nebo malým vlastním pluginem a API klíčem jako heslem.

Aktualizováno 1. 10. 2026

WordPress odesílá obnovení hesla, objednávky z WooCommerce a zprávy z kontaktních formulářů funkcí wp_mail(), která ve výchozím stavu používá poštovní nastavení serveru a často končí ve spamu. Tento návod přesměruje tuto poštu přes SMTP relay Emailitu, buď pluginem WP Mail SMTP, nebo několika řádky kódu.

Předpoklady

  • Přístup administrátora k vašemu webu na WordPressu.
  • Ověřená odesílací doména, například acme.com. Adresa odesílatele vašeho webu ji musí používat.
  • API klíč. Vytvořte klíč s oprávněním Sending Only omezený na vaši doménu a pojmenujte ho například wordpress-acme, aby uniklé nastavení pluginu nešlo zneužít k ničemu jinému.
  • Dokud váš workspace nemá produkční přístup, můžete odesílat jen na e-mailové adresy účtů členů workspace. Testujte se svou vlastní adresou.

Nastavení SMTP

Tyto hodnoty zadáte do jakéhokoli SMTP pluginu:

Nastavení Hodnota
SMTP server smtp.emailit.com
Šifrování TLS (STARTTLS)
SMTP port 587
Autentizace Zapnutá
SMTP uživatelské jméno emailit
SMTP heslo Váš API klíč (secret_…)
E-mail odesílatele Adresa na vaší ověřené doméně, například hello@acme.com

Pokud váš hosting blokuje port 587, použijte 2525 nebo 2587 s TLS, nebo 465 s SSL. Viz Nastavení SMTP.

Nastavte WP Mail SMTP

WP Mail SMTP je bezplatný plugin, který nahrazuje způsob, jakým WordPress odesílá poštu. Další SMTP pluginy, jako jsou FluentSMTP nebo Post SMTP, používají stejná nastavení s mírně odlišnými popisky.

  1. Nainstalujte plugin. Ve WordPressu přejděte do Plugins > Add New, vyhledejte WP Mail SMTP, nainstalujte ho a aktivujte. Pokud se otevře průvodce nastavením, přeskočte ho; vše můžete nastavit na stránce nastavení.

  2. Nastavte odesílatele. Otevřete nastavení pluginu. Do pole From Email zadejte adresu na vaší ověřené doméně a zapněte Force From Email, aby všechny pluginy odesílaly z této adresy. Do pole From Name zadejte název webu nebo firmy.

  3. Zvolte Other SMTP. V poli Mailer zvolte Other SMTP.

  4. Zadejte server. Do pole SMTP Host zadejte smtp.emailit.com, v poli Encryption zvolte TLS a do pole SMTP Port zadejte 587. Auto TLS nechte zapnuté.

  5. Zadejte přístupové údaje. Zapněte Authentication. Do pole SMTP Username zadejte emailit a do pole SMTP Password svůj API klíč. Nastavení uložte.

  6. Pošlete test. Nástrojem Email Test v pluginu pošlete zprávu na svou vlastní adresu. Během několika sekund se objeví v Email APIEmails.

Nedávejte klíč do databáze

WP Mail SMTP umí číst nastavení z konstant, takže API klíč může být v wp-config.php místo v databázi. Přidejte tyto řádky nad /* That's all, stop editing! */:

wp-config.php
define( 'WPMS_ON', true );
define( 'WPMS_MAILER', 'smtp' );
define( 'WPMS_SMTP_HOST', 'smtp.emailit.com' );
define( 'WPMS_SMTP_PORT', 587 );
define( 'WPMS_SSL', 'tls' );
define( 'WPMS_SMTP_AUTH', true );
define( 'WPMS_SMTP_AUTOTLS', true );
define( 'WPMS_SMTP_USER', 'emailit' );
define( 'WPMS_SMTP_PASS', 'secret_••••••••••••••••••••••••••••••••' );
define( 'WPMS_MAIL_FROM', 'hello@acme.com' );
define( 'WPMS_MAIL_FROM_FORCE', true );
define( 'WPMS_MAIL_FROM_NAME', 'Acme' );

Stránka nastavení pak tyto hodnoty zobrazí jako uzamčené. Pokud některé pole svou konstantu nepřevezme, podívejte se do dokumentace pluginu.

Nastavení bez pluginu

Pokud nechcete instalovat plugin, přidejte must-use plugin, který nastaví vestavěný PHPMailer ve WordPressu. Klíč definujte ve wp-config.php:

wp-config.php
define( 'EMAILIT_API_KEY', 'secret_••••••••••••••••••••••••••••••••' );

Pak vytvořte tento soubor:

wp-content/mu-plugins/emailit-smtp.php
<?php
/**
 * Plugin Name: Emailit SMTP
 * Description: Sends all WordPress email through the Emailit SMTP relay.
 */

add_action( 'phpmailer_init', function ( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.emailit.com';
    $phpmailer->Port       = 587;
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Username   = 'emailit';
    $phpmailer->Password   = EMAILIT_API_KEY;
} );

add_filter( 'wp_mail_from', fn () => 'hello@acme.com' );
add_filter( 'wp_mail_from_name', fn () => 'Acme' );

Soubory v mu-plugins se načítají automaticky a v administraci je nelze vypnout.

Přijímejte webhooky

Většina webů webhooky nepotřebuje. Pokud chcete reagovat na nedoručení nebo stížnosti, například označit adresu zákazníka WooCommerce, zaregistrujte REST routu a ověřujte podpis. Tajný klíč webhooku uložte do wp-config.php jako EMAILIT_WEBHOOK_SECRET:

wp-content/mu-plugins/emailit-webhooks.php
<?php
add_action( 'rest_api_init', function () {
    register_rest_route( 'emailit/v1', '/webhook', [
        'methods'             => 'POST',
        'permission_callback' => '__return_true',
        'callback'            => function ( WP_REST_Request $request ) {
            $payload   = $request->get_body();
            $timestamp = (string) $request->get_header( 'x-emailit-timestamp' );
            $signature = (string) $request->get_header( 'x-emailit-signature' );
            $expected  = hash_hmac( 'sha256', $timestamp . '.' . $payload, EMAILIT_WEBHOOK_SECRET );

            if ( abs( time() - (int) $timestamp ) > 300 || ! hash_equals( $expected, $signature ) ) {
                return new WP_Error( 'invalid_signature', 'Invalid signature', [ 'status' => 401 ] );
            }

            foreach ( json_decode( $payload, true ) as $event ) {
                if ( 'email.bounced' === $event['type'] ) {
                    // Flag $event['data']['object']['to'].
                }
            }

            return new WP_REST_Response( null, 200 );
        },
    ] );
} );

Nasměrujte webhook na https://acme.com/wp-json/emailit/v1/webhook. Routu chrání právě kontrola podpisu, proto ji neodstraňujte.

Tipy pro produkční provoz

  • Vynuťte adresu odesílatele. Pluginy pro WooCommerce, kontaktní formuláře a členství si často nastavují vlastního odesílatele. Vynucená adresa odesílatele na vaší ověřené doméně zabrání chybám 530 From/Sender domain is not verified.
  • Když něco selže, podívejte se do logů. Email APILogs ukazuje každé přihlášení přes SMTP a každou zprávu se stavovým kódem, filtrované podle API klíče.
  • Hlídejte si limity. Nové workspace mohou ve výchozím stavu odeslat 2 e-maily za sekundu a 5 000 za den. Velký výprodej ve WooCommerce nebo plugin pro newslettery na to snadno narazí; o navýšení požádejte podle stránky Limity a kvóty.
  • Newslettery neposílejte přes wp_mail. Pro marketingové e-maily na seznam použijte kampaně, které za vás vyřeší odkazy pro odhlášení i seznamy kontaktů.

Řešení problémů

Příznak Příčina Řešení
535 Authentication failed Heslo není platný API klíč. Vložte celý klíč včetně secret_ a jako uživatelské jméno použijte emailit.
530 From/Sender domain is not verified for this workspace Adresa odesílatele není na ověřené doméně. Nastavte a vynuťte e-mail odesílatele na vaší ověřené doméně.
530 API key is restricted to sending domain Klíč je omezený na jinou doménu. Použijte adresu odesílatele na doméně klíče, nebo jiný klíč.
Vypršel časový limit připojení Váš hosting blokuje port. Zkuste port 2525 nebo 2587 s TLS, nebo požádejte hosting, aby povolil odchozí SMTP.
550 Unverified workspaces can only send to workspace members' account emails Workspace zatím nemá produkční přístup. Požádejte o produkční přístup.

Další informace najdete na stránce Řešení problémů se SMTP.

Další kroky

Porty, TLS a přístupové údaje.
Udržte svou poštu mimo spam.
Co znamená každý stav v seznamu Emails.
Rozsahy oprávnění, omezení na doménu a výměna.

Byla tato stránka užitečná?

Děkujeme za zpětnou vazbu.

Děkujeme, čteme každou zprávu.