PHP

SMTP autenticado no PHP

Como mandar um e-mail utilizando servidor de com autenticação pelo .

Para enviar e-mails pelo PHP iremos utilizar das classes prontas que irão encurtar o nosso trabalho.

Clique nos link abaixo para baixar:

PHPMailer Class

Descompacte o arquivo e cole as duas classes no diretório aonde está o arquivo PHP que irá enviar os e-mails.

Código fonte de exemplo

Crie um arquivo PHP de teste no mesmo diretório aonde está as duas classes.

Logo no inicio do arquivo vamos utilizar a função “require_once” para incluirmos a classe “class.phpmailer.php”.

require_once("class.phpmailer.php");

Configurando PHPMailer

Agora vamos configurar a nossa classe PHPMailer para utilização.

Primeiro você deve substituir os valores de teste nas variáveis abaixo com os dados reais do servidor SMTP que será utilizado.

$servidor_smtp = "smtp.teste.com.br";
$porta = "587";
$usuario = "teste@teste.com.br";
$senha = "123456";

Observação: Por padrão, normalmente a porta utilizada nos servidores de SMTP é a “587”

Agora vamos instanciar a classe PHPMailer.

$mail = new PHPMailer();
$mail->IsSMTP();  
$mail->SMTPDebug = 1;  
$mail->SMTPAuth = true;  
$mail->SMTPSecure = 'tls'; 
$mail->Host = $servidor_smtp; 
$mail->Port = $porta;    
$mail->Username = $usuario;
$mail->Password = $senha;

No código acima, além de passar os dados do SMTP utilizo as seguintes configurações

Ativo o SMTP no objeto

$mail->IsSMTP();

Modo “debug”, informe 1 para erros e mensagens ou número 2 para apenas mensagens

$mail->SMTPDebug = 1;

Informe que a autenticação será necessária no servidor de SMTP.

$mail->SMTPAuth = true;

Modo de que será utilizado, podendo ser “tls” ou “”.

$mail->SMTPSecure = "tls";

Definindo conteúdo, remetente e ddestinatário do email

Substituí os valores da variáveis abaixo com os dados que você deseja enviar.

$de = "remetente@teste.com.br";
$de_nome = "nome remetente";
$assunto = "assunto de teste";
$corpo = "email de teste";
$para = "destinatario@teste.com.br";

$mail->SetFrom($de, $de_nome);
$mail->Subject = $assunto;
$mail->Body = $corpo;
$mail->AddAddress($para);

Observações: Em alguns servidores de SMTP, por questões de segurança e anti-spam, o usuário utilizado na autenticação (email) deverá ser o mesmo utilizado no “de” da função “SetFrom()”.

Enviando o e-mail

Utilize o código abaixo para enviar o e-mail

if($mail->Send()) {
 // enviado
} else {   
 // ocorreu um erro
}

Você pode adicionar as validações no código acima.

Verificando os erros

Observação: no modo “debug” com o valor “2” as mensagens de erro serão incluídas diretamente no arquivo.

Caso os e-mails não estejam sendo enviados e nenhuma mensagem de erro está sendo exibida leve em consideração os seguintes pontos:

  • congestionamento no servidor de e-mail
  • o e-mail está sendo enviado porém está caindo na caixa de spam ou black list
  • valide se os dados do destinatário estão corretos
  • o servidor aonde está rodando seu arquivo PHP está bloqueando o envio do email (por exemplo: Godaddy não permite o envio de e-mails utilizando servidores de SMTP externos).

Código fonte completo

/* Configurações */$servidor_smtp = "smtp.teste.com.br";
$porta = "587";
$usuario = "teste@teste.com.br";
$senha = "123456";

$mail = new PHPMailer();
$mail->IsSMTP();  
$mail->SMTPDebug = 1;  
$mail->SMTPAuth = true;  
$mail->SMTPSecure = 'tls'; 
$mail->Host = $servidor_smtp; 
$mail->Port = $porta;    
$mail->Username = $usuario;
$mail->Password = $senha;


/* Conteúdo e destinatario */$de = "remetente@teste.com.br";
$de_nome = "nome remetente";
$assunto = "assunto de teste";
$corpo = "email de teste";
$para = "destinatario@teste.com.br";

$mail->SetFrom($de, $de_nome);
$mail->Subject = $assunto;
$mail->Body = $corpo;
$mail->AddAddress($para);

if($mail->Send()) {
 // email foi enviado
} else {   
 // ocorreu um erro
}

 

 

Resumo
Nome do Artigo
Como enviar um e-mail utilizando um servidor de SMTP autenticado no PHP
Descrição
Enviando um e-mail no PHP por um servidor de smtp com autenticação, utilizando a classe "PHPMailer", no post está incluso código fonte de exemplo com as configurações necessárias
Autor
Editor
Roger Mauricio Takemiya
Logo do Editor

Post Recentes

Por que devo sempre manter o Magento 2 atualizado?

Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…

4 semanas atrás

Adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2

Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…

1 mês atrás

Exibir mensagens erro/sucesso da Classe: Magento\Framework\Message\ManagerInterface

Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…

1 mês atrás

Exportar as categorias do Magento 2 em um XML

Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…

2 meses atrás

Colocar um video como Background utilizando HTML + CSS

Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…

4 meses atrás

Desativar o “lastname” no Magento 2

Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…

4 meses atrás