# Enviar os e-mails do WordPress com o Emailit

> Envie os e-mails do WordPress, do WooCommerce e dos formulários de contato pelo SMTP do Emailit com o WP Mail SMTP ou com um pequeno plugin, usando uma chave de API como senha.

O WordPress envia redefinições de senha, pedidos do WooCommerce e mensagens de formulários de contato com `wp_mail()`, que por padrão usa a configuração de e-mail do servidor e muitas vezes cai no spam. Este guia envia esses e-mails pelo SMTP relay do Emailit, com o plugin WP Mail SMTP ou com algumas linhas de código.

## Pré-requisitos

- Acesso de administrador ao seu site WordPress.
- Um [domínio de envio verificado](/pt/docs/domains/add-a-domain/), por exemplo, `acme.com`. O endereço From do seu site deve usá-lo.
- Uma [chave de API](/pt/docs/developers/api-keys/). Crie uma chave **Sending Only** restrita ao seu domínio, com um nome como `wordpress-acme`, para que uma configuração de plugin vazada não possa ser usada para mais nada.
- Até o seu workspace ter [acesso de produção](/pt/docs/workspaces/production-access/), você só pode enviar para os e-mails das contas dos membros do workspace. Teste com o seu próprio endereço.

## Configurações de SMTP

Estes são os valores que você vai informar em qualquer plugin de SMTP:

| Configuração | Valor |
| --- | --- |
| Host SMTP | `smtp.emailit.com` |
| Criptografia | TLS (STARTTLS) |
| Porta SMTP | `587` |
| Autenticação | Ativada |
| Usuário SMTP | `emailit` |
| Senha SMTP | A sua chave de API (`secret_…`) |
| E-mail do remetente (From) | Um endereço no seu domínio verificado, por exemplo, `hello@acme.com` |

Se o seu host bloquear a porta 587, use `2525` ou `2587` com TLS, ou `465` com SSL. Consulte [Configurações de SMTP](/pt/docs/smtp/settings/).

## Configurar o WP Mail SMTP

O [WP Mail SMTP](https://wordpress.org/plugins/wp-mail-smtp/) é um plugin gratuito que substitui o transporte de e-mail do WordPress. Outros plugins de SMTP, como o FluentSMTP ou o Post SMTP, usam as mesmas configurações com rótulos um pouco diferentes.

1. **Instale o plugin.** No WordPress, acesse **Plugins > Add New**, pesquise **WP Mail SMTP** e depois instale e ative o plugin. Se o assistente de configuração abrir, pule-o; você pode configurar tudo na página de configurações.

2. **Defina o remetente.** Abra as configurações do plugin. Em **From Email**, informe um endereço no seu domínio verificado e ative **Force From Email**, para que todos os plugins enviem desse endereço. Em **From Name**, informe o nome do seu site ou da sua empresa.

3. **Escolha Other SMTP.** Em **Mailer**, escolha **Other SMTP**.

4. **Informe o servidor.** Defina **SMTP Host** como `smtp.emailit.com`, **Encryption** como **TLS** e **SMTP Port** como `587`. Deixe **Auto TLS** ativado.

5. **Informe as credenciais.** Ative **Authentication**. Defina **SMTP Username** como `emailit` e **SMTP Password** como a sua chave de API. Salve as configurações.

6. **Envie um teste.** Use a ferramenta **Email Test** do plugin para enviar uma mensagem para o seu próprio endereço. Ela aparece em **Email API → Emails** em poucos segundos.

### Manter a chave fora do banco de dados

O WP Mail SMTP pode ler as configurações dele a partir de constantes, para que a chave de API fique no `wp-config.php` em vez de no banco de dados. Adicione estas linhas acima de `/* 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' );
```

A página de configurações passa a mostrar esses valores como bloqueados. Consulte a documentação do plugin se um campo não pegar a constante dele.

## Configurar sem plugin

Se você preferir não instalar um plugin, adicione um must-use plugin que configure o PHPMailer nativo do WordPress. Defina a chave no `wp-config.php`:

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

Depois, crie este arquivo:

```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' );
```

Os arquivos em `mu-plugins` são carregados automaticamente e não podem ser desativados na tela de administração.

## Receber webhooks

A maioria dos sites não precisa de webhooks. Se você quiser reagir a bounces ou reclamações, por exemplo, para marcar o endereço de um cliente do WooCommerce, registre uma rota REST e verifique a assinatura. Guarde o segredo de assinatura do webhook no `wp-config.php` como `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 );
        },
    ] );
} );
```

Aponte o [webhook](/pt/docs/webhooks/set-up/) para `https://acme.com/wp-json/emailit/v1/webhook`. A verificação da assinatura é o que protege a rota, então não a remova.

## Dicas para produção

- **Force o endereço From.** O WooCommerce e os plugins de formulários de contato e de áreas de membros costumam definir o próprio remetente. Forçar um endereço From no seu domínio verificado evita os erros `530 From/Sender domain is not verified`.
- **Confira os logs quando algo falhar.** **Email API → Logs** mostra cada login SMTP e cada mensagem com o código de status, filtrados por chave de API.
- **Fique de olho nos seus limites.** Por padrão, os workspaces novos podem enviar 2 e-mails por segundo e 5.000 por dia. Uma grande promoção no WooCommerce ou um plugin de newsletter pode atingir esse limite; consulte [Limites](/pt/docs/limits/) para pedir mais.
- **Não envie newsletters pelo wp_mail.** Para e-mails de marketing para uma lista, use [Campanhas](/pt/docs/campaigns/), que cuidam dos links de descadastro e das listas de contatos para você.

## Solução de problemas

| Sintoma | Causa | Solução |
| --- | --- | --- |
| `535 Authentication failed` | A senha não é uma chave de API válida. | Cole a chave completa, incluindo `secret_`, e use `emailit` como usuário. |
| `530 From/Sender domain is not verified for this workspace` | O endereço From não está em um domínio verificado. | Defina e force um e-mail de remetente no seu domínio verificado. |
| `530 API key is restricted to sending domain` | A chave está restrita a outro domínio. | Use um endereço From no domínio da chave ou outra chave. |
| A conexão dá timeout | O seu host bloqueia a porta. | Tente a porta `2525` ou `2587` com TLS ou peça ao seu host para liberar o SMTP de saída. |
| `550 Unverified workspaces can only send to workspace members' account emails` | O workspace ainda não tem acesso de produção. | [Solicite o acesso de produção](/pt/docs/workspaces/production-access/). |

Para mais informações, consulte [Solução de problemas de SMTP](/pt/docs/smtp/troubleshooting/).

## Próximos passos

  - [Configurações de SMTP](/pt/docs/smtp/settings/): Portas, TLS e credenciais.
  - [Boas práticas de entregabilidade](/pt/docs/deliverability/best-practices/): Mantenha os seus e-mails fora do spam.
  - [Status de e-mail](/pt/docs/logs/email-statuses/): O que significa cada status da lista de e-mails.
  - [Chaves de API](/pt/docs/developers/api-keys/): Escopos, restrições de domínio e rotação.

---
Fonte: https://emailit.com/pt/docs/frameworks/wordpress/
