Enviando e-mail via SMTP autenticado com PHP
Revisão de 13h15min de 9 de junho de 2021 por Tavola (discussão | contribs) (Criou página com 'Category:Linguagens de ProgramaçãoCategory:PHP == Introdução == Alguns servidores, por questões de segurança, podem ter a função mail do PHP bloqueada, nestes...')
Introdução
Alguns servidores, por questões de segurança, podem ter a função mail do PHP bloqueada, nestes casos é recomendado o uso da classe PHPMailer para envio de mensagens se conectando diretamente ao servidor SMTP de seu domínio de forma autenticada.
A classe PHPMailer é gratuita e pode ser encontrada para download em: http://code.google.com/a/apache-extras.org/p/phpmailer/
Download da Classe
O PHPMailer está disponível para download no Sourceforge através do endereço: http://code.google.com/a/apache-extras.org/p/phpmailer/
O Uso
Descompacte a classe e envie para seu servidor, no arquivo de seu formulário, faça o include do arquivo class.phpmailer.php, feito isto basta configurar conforme exemplo abaixo:
<?php
// Faz o include da classe PHPMailer
include("/caminho/para/classe/PHPMailerAutoload.php");
// Inicializa a classe PHPMailer
$mail = new PHPMailer(true);
// Informa que o envio será feito via SMTP
$mail->IsSMTP();
// Define que o e-mail será HTML
$mail->IsHTML(true);
// Tenta fazer o envio
try {
// Aqui você deve informar o endereço do servidor SMTP de seu domínio
$mail->Host = "SMTP.SEUDOMINIO.COM.BR";
// Aqui é informado que o SMTP é autenticado
$mail->SMTPAuth = true;
// Informe o usuário
$mail->Username = "SEU USUARIO DE EMAIL";
// Informe a senha
$mail->Password = "A SENHA DO EMAIL";
// Configura a porta 587 do smtp
$mail->Port = 587;
// Endereço do Remetente, recomenda-se sempre usar um e-mail válido de seu domínio, pois se neste campo for colocado o endereço do remetente, a mensagem pode ser recusada por restrições em SPF
$mail->SetFrom('EMAIL@REMETENTE-UM-EMAIL-@SEUDOMINIO.COM.BR', 'NOME REMETENTE');
// Endereço de Resposta (Neste campo pode ser colocado o e-mail do remetente)
$mail->AddReplyTo('EMAIL@PARA-RESPOSTADOEMAIL-O-EMAIL-DE-QUEM-POSTOU-O-FORM', 'Nome');
// Endereço de Destino do formulário
$mail->AddAddress('EMAIL@DESTINO-DO-FORMULARIO', 'NOME-DE-DESTINO');
// Assunto do e-mail
$mail->Subject = 'ASSUNTO DO E-MAIL';
// Conteúdo do e-mail em modo texto, caso você monte o corpo em uma variável, pode coloca-la aqui, pois a expressão regular irá remover todas as TAGS HTML
$mail->AltBody = ereg_replace("<([^>]+)>", "", "CONTEUDO-EM-MODO-TEXTO");
// Conteúdo do e-mail em HTML
$mail->Body = "CONTEUDO-EM-HTML";
// Caso queira ativar o debug dos erros, e do envio do smtp, descomente esta linha
//$mail->SMTPDebug = 2;
// Envia a mensagem
$mail->Send();
// Em caso de sucesso exibe que a mensagem foi enviada
echo "Mensagem enviada.";
// Em caso de erro do PHPMailer, exibe
} catch (phpmailerException $e) {
echo $e->errorMessage();
// Em caso de erro do PHP, exibe
} catch (Exception $e) {
echo $e->getMessage();
}
?>