Jump to content

Marcelbs

Members
  • Content count

    18
  • Joined

  • Last visited

Community Reputation

0 Comum

About Marcelbs

Informações Pessoais

  • Sexo
    Masculino
  1. Marcelbs

    Envio de e-mail via formulário

    Resolvido, usando PHPMailer. Obrigado a todos.
  2. Marcelbs

    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 todos
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.