Estou tentando criar um formulário para envio de e-mails, o visitante do site coloca seu e-mail, nome e a mensagem, depois envia para o meu gmail. optei pelo gmail pois não tenho uma hospedagem, mas infelizmente o meu código não está funcionado .
Código HTML do form:
<div class="w50 left form">
<h2>SEND AN E-MAIL</h2>
<form method="post" id="form">
<input type="email" name="email" placeholder="E-mail*" required><br>
<input type="text" name="nome" placeholder="Name*" required><br>
<textarea name="mensagem" placeholder="Digite sua mensagem aqui!"></textarea><br>
<input type="submit" name="acao" placeholder="enviar">
</form>
</div>
Código JS:
$(function(){
var include_path = $('base').attr('base');
$('body').on('submit','form',function(){
var form = $(this);
$.ajax({
beforeSend:function(){
$('.overlay-loading').fadeIn();
},
url: include_path+'ajax/formularios.php',
method:'post',
dataType: 'json',
data:form.serialize()
}).done(function(data){
if(data.sucesso == true){
//Tudo certo vamos melhorar a interface!
$('.overlay-loading').fadeOut();
$('.sucesso').fadeIn();
setTimeout(function(){
$('.sucesso').fadeOut();
},3000)
}else{
//Algo deu errado.
$('.overlay-loading').fadeOut();
$('.falhou').fadeIn();
setTimeout(function(){
$('.falhou').fadeOut();
},3000)
}
});
return false;
});
});
Código PHP:
<?php
include('../config.php');
$data = array();
$assunto = 'Novo mensagem do site!';
$corpo = '';
foreach ($_POST as $key => $value) {
$corpo.=ucfirst($key).": ".$value;
$corpo.="<hr>";
}
$info = array('assunto'=>$assunto,'corpo'=>$corpo);
$mail = new Email('smtp.gmail.com',meuemail@gmail.com','Senha123*','Nome');
$mail->addAdress('meuemail@gmail.com','Nome');
$mail->formatarEmail($info);
if($mail->enviarEmail()){
$data['sucesso'] = true;
}else{
$data['sucesso'] = false;
}
//$data['retorno'] = 'sucesso';
die(json_encode($data));
?>
Código da class Email() :
<?php
class Email
{
private $mailer;
public function __construct($host,$username,$senha,$name){
$this->mailer = new PHPMailer;
$this->mailer->isSMTP();
$this->mailer->Host = $host;
$this->mailer->SMTPAuth = true;
$this->mailer->Username = $username;
$this->mailer->Password = $senha;
$this->mailer->SMTPSecure = 'tls';
$this->mailer->Port = 587;
$this->mailer->setFrom($username, $name);
$this->mailer->isHTML(true);
$this->mailer->CharSet = 'UTF-8';
}
public function addAdress($email,$nome){
$this->mailer->addAddress($email,$nome);
}
public function formataEmail($info){
$this->mailer->Subject = $info['assunto'];
$this->mailer->Body = $info['corpo'];
$this->mailer->AltBody = strip_tags($info['corpo']);
}
public function enviarEmail(){
if ($this->mailer->send()) {
return true;
}else{
return false;
}
}
}
?>
Não retorna nenhum erro no console, mas não envia o e-mail, somente atualiza a página. Agradeço qualquer tipo de ajuda.