Como enviar e-mails com o PHP Mailer
Você pode implementar os e-mails transacionais da SendPulse com configurações de SMTP em seu projeto usando PHPMailer. O PHPMailer é compatível com muitas bibliotecas PHP e permite que você crie um e-mail personalizado com um anexo e envie para seus assinantes.
No artigo, veremos como instalar o PHPMailer, onde encontrar os parâmetros SMTP em sua conta SendPulse e como configurar um arquivo para enviar um e-mail.
Instalar o PHPMailer
Você pode instalar o PHPMailer via Composer ou faça o download do arquivo e instale-o em seu projeto.
Se você estiver usando o Composer, adicione a seguinte linha ao seu arquivo "composer.json":
"phpmailer/phpmailer": "^6.5"
Ou execute o seguinte comando:
compositor requer phpmailer/phpmailer
Se você não estiver usando o Composer, baixe os arquivos PHPMailer e adicione-os por meio de classes adicionais:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
requer 'caminho/para/PHPMailer/src/Exception.php';
requer 'caminho/para/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
Confira os detalhes da instalação e um exemplo de código no documentação oficial do PHPMailer.
Copiar suas credenciais de login SMTP
Vá para “Configurações de SMTP” > guia “Geral” em sua conta SendPulse. Copie os valores de autorização em SMTP: endereço do servidor, porta, login e senha.
Você pode acessar as configurações de SMTP depois que seu perfil for ativado. A mensagem "Seu perfil está sendo moderado" desaparecerá da página e você receberá um e-mail notificando que sua conta foi aprovada e ativada.
Configure o objeto para usar SMTP
Se você usou o Composer para instalar o PHPMailer, adicione o arquivo autoload.php:
requer 'path/to/composer/vendor/autoload.php';
Se você instalou o PHPMailer manualmente, inicialize-o assim:
requer caminho/para/PHPMailer/src/PHPMailer.php';
requer caminho/para/PHPMailer/src/SMTP.php';
require path/to/PHPMailer/src/Exception.php';
Crie uma classe PHPMailer e um novo objeto:
<?php
use PHPMailer\PHPMailer\PHPMailer;
Crie um novo objeto PHPMailer:
$mail = new PHPMailer(true);
Em seguida, adicione os parâmetros SMTP, os dados sobre seu remetente e destinatários e seu conteúdo de e-mail.
Adicionar configurações de SMTP
Na seção "Configurações do servidor", você precisa adicionar os dados de suas configurações de SMTP à sua conta da SendPulse.
//Configurações do servidor
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Ativa a saída de depuração detalhada
$mail->isSMTP(); //Envia usando SMTP
$mail->Host = 'smtp-pulse.com'; //Configura o servidor SMTP para enviar
$mail->SMTPAuth = true; //Ativar autenticação SMTP
$mail->Nome de usuário = 'usuário@exemplo.com'; // nome de usuário SMTP
$mail->Senha = 'segredo'; //Senha SMTP
$mail->SMTPSecure = 'ssl'; //Ativar criptografia TLS implícita
$mail->Porta = 465; //Porta TCP para conectar; use 587 se você definiu `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
Onde:
Anfitrião | Endereço do servidor |
SMTPAuth | Indica se a autenticação está habilitada (no nosso caso, sim, nós a usamos e precisamos adicionar o valor true ) |
Nome de usuário | Seu login de e-mail da SendPulse |
Senha | Senha para sua conta SendPulse |
SMTPSecure | Tipo de criptografia (corresponde à porta) |
Porta | A porta que você usará para se conectar ao SMTP. Você pode escolher 2525, 465 e 587 |
Adicione o remetente e os destinatários
Especifique o remetente e os destinatários na seção "Destinatários".
//Destinatários
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); //Adiciona um destinatário
$mail->addAddress('ellen@example.com'); //Nome é opcional
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
Onde:
setFrom | Nome e endereço do remetente do e-mail.
O endereço do remetente deve ser verificado em sua conta SMTP. |
adicionar endereço | Endereço de e-mail e nome do destinatário principal.
Você pode enviar quantos e-mails por hora forem determinados pelo seu plano de preços. |
adicionar CC | Endereço de e-mail e nome do destinatário secundário na cópia. O destinatário verá outros destinatários. |
adicionar BCC | Endereço de e-mail e nome do destinatário secundário em BCC. O destinatário não verá outros destinatários. |
Adicione seu conteúdo de e-mail
Especifique os parâmetros de e-mail na seção "Conteúdo".
Para personalizar a mensagem no valor do parâmetro, você pode usar suas variáveis de projeto.
//Conteúdo
$mail->isHTML(true); //Definir formato de e-mail para HTML
$mail->Assunto = 'Aqui está o assunto';
$mail->Codificação = 'base64';
$mail->Body = 'Este é o corpo da mensagem HTML <b>em negrito!</b>';
$mail->AltBody = 'Este é o corpo em texto simples para clientes de correio não HTML';
$mail->msgHTML(file_get_contents('contents.html'), __DIR__);
Onde:
Assunto | Assunto do seu e-mail |
Corpo | Corpo do seu e-mail em HTML |
AltBody | Versão de texto do seu e-mail |
Codificação | Codifica o conteúdo do e-mail no formato de dados selecionado. Você pode usar os valores base64 e quoted-printable . |
msgHTML | Converte uma versão de e-mail HTML em uma versão de texto |
Além disso, você pode anexar arquivos à mensagem. Especifique o caminho e o nome do arquivo no parâmetro addAttachment
//Anexos
$mail->addAttachment('/var/tmp/file.tar.gz'); //Adicionar Anexos
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Nome opcional
Definir os atributos de envio
No final do documento, a função de envio é especificada
. No comando echo
, você pode especificar qual mensagem exibir se o envio for bem-sucedido ou ao receber um erro de envio:
$mail->send();
echo 'Mensagem enviada';
} catch (Exceção $e) {
echo "A mensagem não pôde ser enviada. Erro do Mailer: {$mail->ErrorInfo}";
}
Você pode verificar um exemplo de uma configuração de arquivo diferente na documentação oficial do PHPMailer: Exemplo simples e Exemplo: SMTP.
Se você estiver tendo problemas para usá-lo, você também pode consultar o Solucionar problemas de PHPMailer e visualizar Códigos de erro SMTP.
Depois, você precisará executar um arquivo de acordo com as configurações do seu projeto em cada evento para enviar um e-mail transacional.
Última Atualização: 03.02.2023
ou