Envio de e-mail via formulário
Olá pessoal, td bem? Gostaria de saber se alguém faz idéia por que tem hora que o e-mail enviado via formulário chega e hora não chega. No Gmail e no Bol está tudo funcionando, porém é no e-mail Locaweb é que está acontecendo a confusão. Percebi que quando põe acento no campo do assunto, em um dos meus e-mails Locaweb, o e-mail vai pra spam. Em outro e-mail Locaweb simplesmente não chega em lugar nenhum. Todavia em todos os casos o formulário me avisa que foi enviado corretamente. Vou postar os códigos que programei: função javascript que valida o formulário:
function validacaoContato(){
/* console.log('valida formulario'). */ $("#formulario").validate({ rules:{ nome: {required: true}, email: {required: true, email: true}, assunto: {required: true}, mensagem:{required: true} }, messages:{ nome: {required: "Favor informar o seu nome"}, email: {required: "Favor informar o seu e-mail", email:"favor preencher um e-mail válido"}, assunto: {required: "Favor preencher com um assunto"}, mensagem:{required: "Favor preencher com uma mensagem"}, }, errorElement:"div", wrapper:"div", errorPlacement: function(error, element) { error.appendTo(element.closest('div')). error.css({ "color":"red", "font-size":"14px", "position":"absolute", "top":element.closest("div").find(".contato_form_field").height()+50+"px", "text-align":"right" }). }, submitHandler: function(form) { var variaveis = $(form).serialize(). $.ajax({ url: "php/js_php/envia_email.php", type: "POST", data: variaveis+'&destinatario='+representante_email, dataType:"json", success: function(resposta_do_arquivo_php){ if (resposta_do_arquivo_php.sucesso == 1) { $("#formulario").prepend('<div id="form_sobrepoe" style="position:absolute. top:0. left:0. width:100%. height:100%. z-index:1. background:none. "></div>'). $(".resposta").html(""). $(".resposta").html("e-mail enviado com sucesso").appendTo("#form_sobrepoe").css({'color':'green','margin':'5px 0 10px 0','display':'block','position':'absolute','bottom':'0px'}). $("#nome").val(""). $("#email").val(""). $("#assunto").val(""). $("#mensagem").val(""). } else { $(".resposta").html(""). $(".resposta").html("ops, ocorreu um erro, tente novamente mais tarde").css({'color':'red','margin':'5px 0 10px 0','display':'block'}). $("#nome").val(""). $("#email").val(""). $("#assunto").val(""). $("#mensagem").val(""). } }, error: function(a,b,c){
/* console.log(a,b,c). */ $(".resposta").html(""). $(".resposta").html("Ops, ocorreu um erro, tente novamente mais tarde").css({'color':'red','margin':'5px 0 10px 0','display':'block'}). } }). } })
} arquivo php que recebe as variáveis: <?php require_once "../classes/EnviaEmail.class.php". $nome = $_POST['nome']. $email = $_POST['email']. $assunto = $_POST['assunto']. $mensagem = $_POST['mensagem']. $destinatario = $_POST['destinatario']. $texto = '<html> <head> </head> <body> contato: <br/><br/> De: '.$nome.' <br/><br/> E-mail: '.$email.' <br/><br/> Assunto: '.$assunto.' <br/><br/> Mensagem: '.$mensagem.'<br/><br/> </body> </html>'. $email_c = new EnviaEmail($email,$assunto,$destinatario,$texto,1). $email_c->enviaEmail().?> e a classe que envia o e-mail: <?php class EnviaEmail { private $_emailsender,$_email_remetente,$_destinatario,$_assunto,$_headers,$_mensagem,$_quebra_linha,$_array_resposta,$_r. public function __construct($email_p,$assunto_p,$destinatario_p,$mensagem_p,$r){ $this->_email_remetente = $email_p. $this->_assunto = $assunto_p. $this->_destinatario = $destinatario_p. $this->_mensagem = $mensagem_p. $this->_r = $r. } private function configuraVars(){ $this->_emailsender = "emailautomatico@". str_replace('www.','',$_SERVER['HTTP_HOST']). if(PHP_OS == "Linux"){ $this->_quebra_linha = "\n". //Se for Linux } elseif(PHP_OS == "WINNT"){ $this->_quebra_linha = "\r\n". // Se for Windows } else { $this->_array_resposta['sucesso'] = 0. $this->_array_resposta['mensagem'] = 'erro'. exit($this->_array_resposta). } } private function montaHeaders(){ $headers = "MIME-Version: 1.1".$this->_quebra_linha. $headers.= "Content-type: text/html. charset=utf-8".$this->_quebra_linha. $headers.= "From: ". $this->_emailsender.$this->_quebra_linha. if(strlen($this->_destinatario) > 0) $headers.= "Cc: ".$this->_destinatario.$this->_quebra_linha. if(strlen($this->_destinatario) > 0) $headers.= "Bcc: ".$this->_destinatario.$this->_quebra_linha. $headers.= "Reply-To: ". $this->_email_remetente. $this->_quebra_linha. return $headers. } public function enviaEmail(){/ header('Content-Type: text/html. charset=utf-8'). /
$this->configuraVars(). $this->_headers = $this->montaHeaders(). if(mail($this->_destinatario, $this->_assunto, $this->_mensagem, $this->_headers, "-r". $this->_emailsender)){ $this->_array_resposta['sucesso'] = 1. } else { $this->_array_resposta['sucesso'] = 0. }. if($this->_r == 1){ echo json_encode($this->_array_resposta). } } }?> obrigado a todosDiscussão (1)
Carregando comentários...