# 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.

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](/cs/docs/domains/add-a-domain/), například `acme.com`. Adresa odesílatele vašeho webu ji musí používat.
- [API klíč](/cs/docs/developers/api-keys/). 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](/cs/docs/workspaces/production-access/), 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](/cs/docs/smtp/settings/).

## Nastavte WP Mail SMTP

[WP Mail SMTP](https://wordpress.org/plugins/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 API → Emails**.

### 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! */`:

```php title="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`:

```php title="wp-config.php"
define( 'EMAILIT_API_KEY', 'secret_••••••••••••••••••••••••••••••••' );
```

Pak vytvořte tento soubor:

```php title="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`:

```php title="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](/cs/docs/webhooks/set-up/) 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 API → Logs** 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](/cs/docs/limits/).
- **Newslettery neposílejte přes wp_mail.** Pro marketingové e-maily na seznam použijte [kampaně](/cs/docs/campaigns/), 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](/cs/docs/workspaces/production-access/). |

Další informace najdete na stránce [Řešení problémů se SMTP](/cs/docs/smtp/troubleshooting/).

## Další kroky

  - [Nastavení SMTP](/cs/docs/smtp/settings/): Porty, TLS a přístupové údaje.
  - [Osvědčené postupy pro doručitelnost](/cs/docs/deliverability/best-practices/): Udržte svou poštu mimo spam.
  - [Stavy e-mailů](/cs/docs/logs/email-statuses/): Co znamená každý stav v seznamu Emails.
  - [API klíče](/cs/docs/developers/api-keys/): Rozsahy oprávnění, omezení na doménu a výměna.

---
Zdroj: https://emailit.com/cs/docs/frameworks/wordpress/
