...
✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como enviar e-mail do WordPress usando o servidor SMTP

38

Você está enfrentando problemas para enviar e-mails no WordPress? Nos bastidores, o WordPress envia e-mail usando a função mail() do PHP. Às vezes, sua hospedagem na web não define as configurações de e-mail corretamente. Como resultado, nenhum e-mail pode ser enviado do seu site WordPress.

Você pode resolver esse problema usando o servidor SMTP. Normalmente, as empresas de hospedagem na web fornecem seu próprio servidor SMTP, que você pode usar para enviar e-mails ao seu site.

Alternativamente, você pode ir para outros servidores SMTP como Gmail, Mailjet, etc. Tudo isso requer detalhes básicos sobre o servidor SMTP como Host, Porta, etc.

Dito isso, vamos ver como usar o servidor SMTP para enviar e-mails do WordPress.

PHPMailer em WordPress

O WordPress inclui a classe PHPMailer em seu núcleo. Se quiser verificá-lo, você encontrará esse arquivo em wp-includes/PHPMailer/PHPMailer.php.

Se configurarmos o PHPMailer no WordPress, a wp_mailfunção envia e-mails por meio dessa classe do PHPMailer. Nesse caso, o wp_mailmétodo não depende das configurações de hospedagem. Em vez disso, eles usam as configurações do servidor SMTP.

Vou usar esta classe PHPMailer para os e-mails. Como essa classe já está incluída no WordPress, não precisamos instalar a biblioteca PHPMailer separadamente.

Pode-se usar o plugin WP Mail SMTP, que também envia e-mails usando servidores SMTP. Mas eu sempre recomendo se algo for alcançável escrevendo um pequeno trecho de código, então vá em frente. É uma boa prática usar menos plug-ins quanto possível. Usar mais plug-ins no site aumenta a carga extra no servidor. E às vezes os plug-ins entram em conflito uns com os outros, o que pode acabar em um site corrompido.

Enviar e-mail WordPress através do servidor SMTP

Antes de continuar, você deve estar pronto com seus detalhes de SMTP, como host, porta, nome de usuário e senha.

Se você planejou usar o servidor SMTP do Gmail, será necessário alterar algumas configurações em sua conta do Google. Para isso, acesse sua conta do Google e clique em Conta. Quando estiver na página da conta, clique em Segurança. Role para baixo até a parte inferior e você encontrará as configurações de ‘Acesso de aplicativo menos seguro’. Defina-o como ON.

Como enviar e-mail do WordPress usando o servidor SMTP

Para configurar o PHPMailer no WordPress, existe um gancho disponível que é phpmailer_init. Usando o phpmailer_initgancho, podemos acessar o objeto PHPMailer e definir os argumentos para ele.

Abra o functions.phparquivo do seu tema ativo e coloque o código abaixo no final de um arquivo.

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'YOUR_SMTP HOST';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 'SMTP_PORT'; //25 or 465
    $phpmailer->Username = 'SMTP_USERNAME';
    $phpmailer->Password = 'SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl'; //ssl or tls
}

Certifique-se de substituir os marcadores de posição pelos valores reais. Digamos que estejamos usando o servidor SMTP do Gmail, então nosso código será escrito da seguinte maneira:

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'smtp.googlemail.com'; //gmail smtp host
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'GMAIL_USERNAME';
    $phpmailer->Password = 'GMAIL_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl';
}

Você precisa passar o nome de usuário e a senha reais da sua conta do Gmail no código acima. Agora tente enviar e-mail do seu site WordPress, o e-mail deve começar a funcionar.

Depure o problema de e-mail

Neste momento, mesmo depois de usar o PHPMailer seus e-mails não estão funcionando, então usando a wp_mail_failedação você pode obter a causa do problema. Use o código abaixo para depurar o problema.

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){
    $fn = ABSPATH. '/mail.log'; // say you've got a mail.log file in your server root
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: ". $wp_error->get_error_message() ."n");
    fclose($fp);
}

Espero que você entenda como enviar e-mails WordPress usando o servidor SMTP. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação