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

Enviar e-mail usando o servidor SMTP do Gmail a partir de script PHP

15

O e-mail desempenha um papel importante no site. Todo site geralmente precisa enviar e-mails aos usuários. Esses e-mails podem ser enviados da página de contato, newsletter, formulário de inscrição, etc.

PHP fornece uma mail()função que é usada para enviar um e-mail. Mas existem limitações ao usar o mail()método. Você não pode enviar e-mail de um servidor de desenvolvimento local. Outra desvantagem é que há uma grande possibilidade de seu e-mail acabar em um Spam.

Na maioria dos casos, o mail()método ainda não envia um e-mail. Isso pode ser devido à configuração incorreta do servidor ou outra coisa.

Para sair desses problemas ou limitações, pode-se usar o servidor SMTP para enviar os e-mails.

Neste artigo, estudamos como usar o PHPMailer e o servidor SMTP do Gmail para enviar e-mails.

Instalação

Você primeiro precisa instalar a biblioteca PHPMailer em seu projeto. A maneira recomendada de instalar uma biblioteca é por meio do Composer.

Abra o prompt de comando no diretório raiz do seu projeto e execute o comando abaixo.

composer require phpmailer/phpmailer

Como estamos usando o SMTP do Gmail, você precisa alterar algumas configurações da sua conta do Google. Faça login em sua conta do Google e clique em Minha conta. Quando estiver na página Minha 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.

Enviar e-mail usando o servidor SMTP do Gmail a partir de script PHP

Depois disso, precisamos escrever um código que envia um e-mail usando a biblioteca PHPMailer e o servidor SMTP do Gmail.

Script PHP para enviar e-mail usando o servidor SMTP do Gmail

Abra seu arquivo PHP onde você precisa escrever um código para e-mails. Por exemplo, estou assumindo que você tem um sendemail.phparquivo no diretório raiz.

sendemail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

No código acima, incluí o ambiente da biblioteca PHPMailer no arquivo PHP.

Em seguida, para enviar e-mails usando o PHPMailer, o usuário precisa passar o endereço do servidor SMTP do Gmail, a porta SMTP do Gmail e a autenticação SMTP (que nada mais é do que seu nome de usuário e senha de uma conta do Google).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

É isso! Você concluiu a configuração. Agora, você está pronto para enviar um e-mail a um usuário.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Substitua os marcadores de posição por valores reais. Execute este arquivo em um navegador e seu e-mail deve ser enviado no endereço de e-mail do destinatário.

Envio de anexos em um e-mail

Usando a biblioteca do PHPMailer, pode-se enviar um ou vários anexos em um e-mail. Tudo o que você precisa fazer é passar um caminho de diretório de seus anexos para o método da addAttachmentseguinte maneira.

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Nosso código final é o seguinte.

sendemail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

Espero que você entenda como enviar e-mail usando o servidor SMTP do Gmail a partir de um script PHP. Por favor, compartilhe seus pensamentos e sugestões em um comentário 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