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.
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