Enviar e-mail com PHP usando AJAx e PHPmailer

Enviada por Fernando 
Fernando
Enviar e-mail com PHP usando AJAx e PHPmailer
18 de July de 2017 às 01:22AM
Não estou conseguindo fazer o envio de e-mail. Segue abaixo meus arquivos. Caso alguém tenha uma forma mais fácil.

//contato.php
...
<div class="col-xs-12 col-sm-12 col-md-7 col-lg-7">
<div class="contact-form">
<form data-toggle="validator" id="contact_form" enctype="multipart/form-data" role="form">
<div class="messages"></div>
<div class="form-group">
<label>Nome (*)</label>
<input type="text" class="form-control" id="nome" placeholder="Nome" autocomplete="on" required data-error="Por favor informe seu nome.">
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<label>Telefone</label>
<input type="tel" class="form-control" id="telefone" placeholder="Telefone" autocomplete="on">
</div>
<div class="form-group">
<label>E-mail (*)</label>
<input type="email" class="form-control" id="email" placeholder="E-mail" required autocomplete="off" data-error="Por favor digite um e-mail válido.">
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<label>Mensagem (*)</label>
<textarea rows="6" cols="6" class="form-control" id="mensagem" placeholder="Mensagem" required data-error="Por favor insira uma mensagem."></textarea>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<button type="submit" id="btn" class="btn btn-primary">Enviar &nbsp;<span class="glyphicon glyphicon-send"></span></button>
</div>
<div id="information">
<div id="info">(*) Campos Obrigatórios</div>
</div>

<div class="loading">
<img src="../site/assets/img/loading.gif">
</div>
</form>
</div>
</div>
...

###################################
###################################
//sendmail.js
$(function () {
$('#contact_form').on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var url = "sendmail.php";

$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function (data) { /* sucesso */
$('#contact_form').html(data);
},
beforeSend: function () { /* antes de enviar */
$('.loading').fadeIn('fast');
},
complete: function () { /* completo */
$('.loading').fadeOut('fast');
},
});
return false;
}
})
});
###################################
###################################
//sendmail.php
<?php

//RECUPERA AS INFORMAÇÕES DO FORMULÁRIO
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$mensagem = $_POST["mensagem"];

// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require_once("../PHPMailer/class.phpmailer.php");
// Inicia a classe PHPMailer
$mail = new PHPMailer();

try {
// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->CharSet = "utf-8";
$mail->Mailer = "smtp";
$mail->IsHTML(true); // Define que o e-mail será enviado como HTML
$mail->Host = "smtp.gmail.com"; // Endereço do servidor SMTP
$mail->Port = 587;
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
$mail->Username = 'xxxxx'; // Usuário do servidor SMTP
$mail->Password = 'xxxx'; // Senha do servidor SMTP
$mail->WordWrap = 50; // quebra linha sempre que uma linha atingir 50 caracteres
//DEFINE O REMETENTE
$mail->From = "xxxx"; // Seu e-mail
$mail->FromName = "Teste"; // Remetente



$mail->Subject = "Mensagem Corpo em Movimento"; // Assunto da mensagem
/* CORPO DO E-MAIL */
$body .= "<h2>Enviando e-mails com AJAX e PHP via SMTP</h2>";
$body .= "Nome: $nome <br>";
$body .= "Telefone: $telefone <br>";
$body .= "E-mail: $email <br>";
$body .= "Mensagem:<br>";
$body .= $mensagem;
$body .= "<br>";
$body .= "----------------------------";
$body .= "<br>";
$body .= "Enviado em <strong>" . date("h:m:i d/m/Y") . " por " . $_SERVER['REMOTE_ADDR'] . "</strong>"; //mostra a data e o IP
$body .= "<br>";
$body .= "----------------------------";
$mail->AltBody = "Este é o corpo da mensagem de teste, em Texto Plano! \r\n :)";

//DEFINE O ANEXO
//$mail->AddAttachment("c:/temp/documento.pdf", "novo_nome.pdf"); // Insere um anexo
//
// Envia o e-mail
$mail->Send();
echo "E-mail enviado com sucesso!";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Mensagem de erro costumizada do PHPMailer
}
// Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
$mail->ClearAttachments();
?>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.