Tutorial configurar WordPress para enviar email por SMTP
Objetivos
- Aprender a ter suporte de envio de emails pelo WordPress utilizando um servidor de emails externo e autenticado
- Poder enviar email autenticado por uma caixa do gmail de forma simples ou outro servidor smtp
- Poder utilizar o plugin Contact form 7 em conjunto com envio de mensagens autenticadas por smtp
- Ter funcionalidade de envio de email pelo wordpress, mesmo que este esteja instalado em um container com docker
Requisitos para seguir o tutorial
- Saber encontrar os arquivos da sua instalação do wordpress
- Saber editar arquivos da sua instalação do wordpress
- Ter uma caixa de email criada (gmail ou outro provedor) e saber a senha
- Caso utilize o gmail: criar uma senha de APP
- É preciso ter autenticação em 2 etapas ativada na sua conta do gmail para a opção de criar senha de APP ficar disponível
- Caso utilize o gmail: criar uma senha de APP
Tutorial passo a passo para configurar envio de email autenticado pelo wordpress
Passo 1 – Configurar seu tema para suporte a envio de email por smtp
Acesse a pasta do seu tema atual do wordpress, por exemplo:
cd wp-content/themes/TEMAqueESTAusando/
Edite ou crie o arquivo functions.php dentro do seu tema atual:
nano funcions.php
Agora adicione o conteúdo:
add_action( 'phpmailer_init', 'send_smtp_email' ); function send_smtp_email( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = SMTP_HOST; $phpmailer->SMTPAuth = SMTP_AUTH; $phpmailer->Port = SMTP_PORT; $phpmailer->SMTPSecure = SMTP_SECURE; $phpmailer->Username = SMTP_USERNAME; $phpmailer->Password = SMTP_PASSWORD; $phpmailer->From = SMTP_FROM; $phpmailer->FromName = SMTP_FROMNAME; }
Lembrando que o código acima é da linguagem PHP, então precisa estar dentro das tags <?php e ?>.
Passo 2 – Configurar o wordpress para utilizar envio de email pelo servidor SMTP definido, ao invés do sendmail padrão
Agora é necessário editar o arquivo wp-config.php que está na base da instalação do wordpress.
nano wp-config.php
É necessário adicionar o conteúdo:
define( 'SMTP_HOST', 'smtp.gmail.com' ); define( 'SMTP_AUTH', true ); define( 'SMTP_PORT', '465' ); define( 'SMTP_SECURE', 'ssl' ); define( 'SMTP_USERNAME', 'seuemail@gmail.com' ); // Sua conta de email define( 'SMTP_PASSWORD', 'suasenhatipoAPPpasswordgerada' ); // Sua senha de APP gerada no gmail (autenticação em 2 etapas precisa estar ativada para ter essa opção) define( 'SMTP_FROM', 'seuemail@gmail.com' ); // Endereço de remetente, se quiser diferente do seu endereço de email define( 'SMTP_FROMNAME', 'Nome Sobrenome' ); // Nome Remetente
Caso utilize seu próprio servidor de email, também é possível utilizá-lo. Basta realizar as modificações para sua caixa de email do seu servidor e o endereço smtp. Então, seguindo o exemplo do Tutorial para criar servidor de email, as configurações seriam muito semelhantes ao código abaixo:
define( 'SMTP_HOST', 'mail.seudominio.com.br' ); define( 'SMTP_AUTH', true ); define( 'SMTP_PORT', '465' ); define( 'SMTP_SECURE', 'ssl' ); define( 'SMTP_USERNAME', 'seuemail@seudominio.com.br' ); // Sua conta de email define( 'SMTP_PASSWORD', 'suasenhatipoAPPpasswordgerada' ); // Sua senha da caixa de email define( 'SMTP_FROM', 'seuemail@seudominio.com.br' ); // Endereço de remetente, se quiser diferente do seu endereço de email define( 'SMTP_FROMNAME', 'Nome Sobrenome' ); // Nome Remetente
Conclusão
Esta é uma alternativa simples e objetiva para ter suporte a envio de emails autenticados com wordpress. Nativamente o wordpress irá tentar utilizar o método de envio de email padrão do servidor onde está configurado, usualmente o sendmail. Caso utilize seu wordpress em um container com docker, o envio autenticado é uma boa alternativa para garantir funcionalidades de envio de email, sem a necessidade de utilizar algum plugin mais complicado, como o WP MAIL SMTP.