domingo, 6 de janeiro de 2013

Enviar email localmente com PHP + Apache + PHPMailer e Gmail no Windows


Muito se busca na internet sobre como enviar emails através de seu servidor web local, e muito se encontra a respeito, talvez nada completo, mas tem muito material a respeito de  emails através de sua instalação local do PHP e Apache.
Mais cedo estava lendo um comentário de um usuário do Sistema Básico servidor local e que chegassem corretamente em contas de email que utilizam servidores do Hotmail, Gmail, Yahoo, etc... isso me levou a montar esse simples tutorial ensinando a enviar emails através de suas aplicações utilizando PHP e Apache instalados localmente em conjunto com a classe PHPMailer e o melhor de tudo, envio autenticado.
A Primeira coisa é efetuar o download do PHPMailer para PHP 5 em formato ZIP
 arquivo baixado dentro do diretório raíz de seu servidor (DocumentRoot que você definiu no seu Apache), no meu caso é E:\sites.

Crie um arquivo php novo com o seguinte conteúdo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 <body>
 <?php
 /*
Supondo que o arquivo esteja dentro do
diretório raíz e sub-diretório phpmailer/
*/
require "phpmailer/class.phpmailer.php";
 
// conteúdo da mensagem
$mensagem = "Testando o envio de email através de aplicações locais";
 
// Estrutura HTML da mensagem
$msg = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$msg .= "<html>";
$msg .= "<head></head>";
$msg .= "<body style=\"background-color:#fff;\" >";
$msg .= "<strong>MENSAGEM:</strong><br /><br />";
$msg .= $mensagem;
$msg .= "</body>";
$msg .= "</html>";
 
// Abaixo começaremos a utilizar o PHPMailer.
 
/*
Aqui criamos uma nova instância da classe como $mail.
Todas as características, funções e métodos da classe
poderão ser acessados através da variável (objeto) $mail.
*/
$mail = new PHPMailer(); //
 
// Define o método de envio
$mail->Mailer     = "smtp";
 
// Define que a mensagem poderá ter formatação HTML
$mail->IsHTML(true); //

// Define que a codificação do conteúdo da mensagem será utf-8
$mail->CharSet    = "utf-8";
 
// Define que os emails enviadas utilizarão SMTP Seguro tls
$mail->SMTPSecure = "tls";
 
// Define que o Host que enviará a mensagem é o Gmail
$mail->Host       = "smtp.gmail.com";
 
//Define a porta utilizada pelo Gmail para o envio autenticado
$mail->Port       = "587";                  
 
// Deine que a mensagem utiliza método de envio autenticado
$mail->SMTPAuth   = "true";
 
// Define o usuário do gmail autenticado responsável pelo envio
$mail->Username   = "um-username-seu-no-gmail";
 
// Define a senha deste usuário citado acima
$mail->Password   = "respectiva-senha-deste-username-acima";
 
// Defina o email e o nome que aparecerá como remetente no cabeçalho
$mail->From       = "o-username@gmail.com";
$mail->FromName   = "seu-nome-por-exemplo";
 
// Define o destinatário que receberá a mensagem
$mail->AddAddress("email-do-destinatário@provedor-de-email-do-destinatario");
 
/*
Define o email que receberá resposta desta
mensagem, quando o destinatário responder
*/
$mail->AddReplyTo("o-username@gmail.com", $mail->FromName);
 
// Assunto da mensagem
$mail->Subject    = "Assunto-da-mensagem";
 
// Toda a estrutura HTML e corpo da mensagem
$mail->Body       = $msg;
 
// Controle de erro ou sucesso no envio
if (!$mail->Send())
{
 
    echo "Erro de envio: " . $mail->ErrorInfo;
 
}
else{
 
    echo "Mensagem enviada com sucesso!";
 
}
 
?>
</body>
</html>


Salve este arquivo como email.php no seu diretório raíz, o mesmo que contem o diretório phpmailer/
Abra o arquivo php.ini, que no meu caso está dentro do diretório 
C:\php
Procure por:

;extension=php_openssl.dll
Retire o ';' do início da linha para descomentar e ativar a extensão php openssl, ficando assim:

extension=php_openssl.dll

Feito isso, agora levando em conta que salvou o arquivo email.php diretamente na raiz de seu servidor, digite na barra de endereço de seu navegador a seguinte URL:
Após acessar a URL acima, analise o resultado na tela.
Se deu alguma mensagem de erro, revise, se não adiantar a revisão, faça um comentário e tento ajudar.Se deu mensagem de sucesso, parabéns, você conseguiu.
Verifique a caixa de entrada da conta de email a qual você definiu em 
$mail->AddAddress, e veja se chegou alguma mensagem.
Espero que tenha gostado




Nenhum comentário:

Postar um comentário