Como enviar email autenticado com PHPMailer

PHPMailer é uma das mais populares bibliotecas open source para enviar e-mails.

As duas características principais são o envio e-mail em HTML e e-mails com anexos. Você pode usar qualquer recurso baseado em e-mail SMTP, vários recepients via: a , CC , BCC , etc. Em resumo: PHPMailer é uma maneira eficiente para enviar e-mail dentro de PHP.

Na maioria dos casos, é uma alternativa para a função mail() do PHP, mas há muitos outros casos em que a função mail() não é simplesmente flexível o suficiente para conseguir o que você precisa. Há muitas vantagens de usar PHPMailer em vez da função mail()

PHPMailer fornece uma interface orientada a objeto, ao passo que mail() não é orientado a objeto.

Desenvolvedor não necessita fazer string $ cabeçalhos que é uma dor de cabeça.

Envio de anexos é muito mais fácil.

No final do post deixarei o link para download dos arquivos e das classes do PHPMailer.

index.html

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br">
<head>
<meta name="author" content="rafaelcarioca7" />
<meta http-equiv="content-type" content="text/html; charset=iso-utf-8" />
<title>Send Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<form action="enviar.php" method="post">
<fieldset>
<legend>Formulário</legend>
<br />
 
 
<label for="email">email:</label>
<input id="email" name="email" size="31" type="text"  /><br />
<label for="assunto">Assunto:</label>
<input id="assunto" name="assunto" size="31" type="text"  /><br />
<label for="mensagem">mensagem:</label><br />
<textarea id="mensagem" name="mensagem" rows="7" cols="30"  /></textarea><br />
 
<br><br>
<input name="enviar" type="submit" value="Enviar" class="botao"/>
<input name="cancelar" type="reset" value="Limpar" class="botao"/>
 
</fieldset>
</form>
 
</body>
</html>

enviar.php

<?php 
 
include_once('phpmail/PHPMailerAutoload.php');
$mail = new PHPMailer; 
$email = trim($_POST['email']);
$assunto = trim($_POST['assunto']);
$mensagem1 = trim($_POST['mensagem']);
 
 
// corpo da mensagem em html
$mensagem =  <<<html
<head>
</head>
<body>
<table rules="all" style="border-color: #666;" cellpadding="10">
<tr><td><strong>Website Name</strong> </td><td>rafaelcarioca7.com</td></tr>
<tr style='background: #eee;'><td><strong>Email</strong> </td><td>$email</td></tr>
<tr><td><strong>Assunto:</strong></td><td>$assunto </td></tr>
<tr style='background: #eee;'><td><strong>Mensagem</strong> </td><td>$mensagem1</td></tr>
</table>
 
 
</body>
html;
 
 
 
// diz o PHPMailer usar SMTP
//Tell PHPMailer to use SMTP 
$mail->isSMTP();
 
 
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
 
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
 
//Defina aqui o hostname do servidor de email
//Set the hostname of the mail server
$mail->Host = "hostname";
//Define aqui a porta smtp
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 587;
 
//Whether to use SMTP authentication
$mail->SMTPSecure = 'SSL';
$mail->SMTPAuth = true;
$mail->Charset   = 'utf8_decode()';
$mail->IsHTML(true); 
//Nome do usuario para autenticação SMTP
//Username to use for SMTP authentication
$mail->Username = "username";
//Senha para autenticação do SMTP
//Password to use for SMTP authentication
$mail->Password = "password";
//Coloque aqui de onde a mensagem foi enviada
//Set who the message is to be sent from
$mail->setFrom("seuemail@dominio.com");
$mail->FromName = 'rafaelcarioca7';
//Set an alternative reply-to address
 
//Coloque aqui pra onde a mensagem vai ser enviada
//Set who the message is to be sent to
$mail->addAddress("seuemail@dominio.com");
 
//Set the subject line
 
$mail->Subject = $assunto;
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
 
$mail->Body    = $mensagem;
//Replace the plain text body with one created manually
 
 
 
 
//send the message, check for errors
if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
} else {
        echo "Message sent!";
}
?>

Não esqueça de editar o arquivo php com as informações do seu servidor SMTP.

Download dos arquivos e as classes php: sendEmail

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestDigg thisEmail this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »