jeweber 0 Denunciar post Postado Novembro 19, 2014 Boa tarde, estou tentando fazer um formulário enviar e-mail mas não dá certo. Quando preencho os campos diz que o formulário foi enviado, mas não recebo nem no spam. Podem ver o formulário aqui http://www.daisybez.com.br/kappe/contact.html Se alguém puder dar uma ajuda, agradeço desde já. Segue codigo: contact.html <form id="contact-form"> <h1>Envie sua mensagem para nós<span class="submit-area"> <input name="submit" type="submit" class="main-button" id="submit_contact" value="Enviar"> </span></h1> <div class="text-fields"> <div class="float-input"> <input name="nome" id="nome" type="text" placeholder="Nome"> <span><i class="fa fa-user"></i></span> </div> <div class="float-input"> <input name="mail" id="mail" type="text" placeholder="e-mail"> <span><i class="fa fa-envelope-o"></i></span> </div> <div class="float-input"> <input name="assunto" id="assunto" type="text" placeholder="assunto"> <span><i class="fa fa-link"></i></span> </div> </div> <div class="submit-area"> <textarea name="comment" id="comment" placeholder="Message"></textarea> <div id="msg" class="message"></div> </div> </form> contact.php <?php /* ========================== Define variables ========================== */ #Your e-mail address define("__TO__", "jeweber@gmail.com"); #Message subject define("__SUBJECT__", "examples.com = From:"); #Success message define('__SUCCESS_MESSAGE__', "Your message has been sent. Thank you!"); #Error message define('__ERROR_MESSAGE__', "Error, your message hasn't been sent"); #Messege when one or more fields are empty define('__MESSAGE_EMPTY_FILDS__', "Please fill out all fields"); /* ======================== End Define variables ======================== */ //Send mail function function send_mail($to,$subject,$message,$headers){ if(@mail($to,$subject,$message,$headers)){ echo json_encode(array('info' => 'success', 'msg' => __SUCCESS_MESSAGE__)); } else { echo json_encode(array('info' => 'error', 'msg' => __ERROR_MESSAGE__)); } } //Check e-mail validation function check_email($email){ if(!@eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){ return false; } else { return true; } } //Get post data if(isset($_POST['nome']) and isset($_POST['mail']) and isset($_POST['comment'])){ $name = $_POST['nome']; $mail = $_POST['mail']; $website = $_POST['assunto']; $comment = $_POST['comment']; if($name == '') { echo json_encode(array('info' => 'error', 'msg' => "Please enter your name.")); exit(); } else if($mail == '' or check_email($mail) == false){ echo json_encode(array('info' => 'error', 'msg' => "Please enter valid e-mail.")); exit(); } else if($comment == ''){ echo json_encode(array('info' => 'error', 'msg' => "Please enter your message.")); exit(); } else { //Send Mail $to = __TO__; $subject = __SUBJECT__ . ' ' . $name; $message = ' <html> <head> <title>Mail from '. $name .'</title> </head> <body> <table style="width: 500px; font-family: arial; font-size: 14px;" border="1"> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Name:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $nome .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">E-mail:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $mail .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Website:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $assunto .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Comment:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $comment .'</td> </tr> </table> </body> </html> '; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'From: ' . $mail . "\r\n"; send_mail($to,$subject,$message,$headers); } } else { echo json_encode(array('info' => 'error', 'msg' => __MESSAGE_EMPTY_FILDS__)); } ?> script.js /* /* ---------------------------------------------------------------------- */ /* Contact Form /* ---------------------------------------------------------------------- */ var submitContact = $('#submit_contact'), message = $('#msg'); submitContact.on('click', function(e){ e.preventDefault(); var $this = $(this); $.ajax({ type: "POST", url: 'contact.php', dataType: 'json', cache: false, data: $('#contact-form').serialize(), success: function(data) { if(data.info !== 'error'){ $this.parents('form').find('input[type=text],textarea,select').filter(':visible').val(''); message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow'); } else { message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow'); } } }); }); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 19, 2014 Tire o @ da frente do mail() e veja que erro retorna Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 19, 2014 Olá Beraldo, retirei o @, e não aparece erro nenhum, diz que foi enviado. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 19, 2014 está testando em localhost ou no servidor remoto? se for em localhost, não vai funcionar mesmo, a não ser que você tenha um servidor SMTP configurado. O ideal é usar SMTP remoto autenticado. O PHPMailer é muito bom pra isso Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 19, 2014 Estou testando no servidor mesmo, será que pode ser alguma configuração do servidor? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 19, 2014 Alguns bloqueiam o envio de emails. Verifique com o suporte se eles permitem o envio. Você está com os erros habilitados? Veja aqui: http://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/ Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 19, 2014 Vou verificar com eles então se tem algum bloqueio. Adicionei o código para exibir erros, e não envia mais agora o formulario. ini_set( 'display_errors', true );error_reporting( E_ALL ); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 19, 2014 você colocou no topo do script, logo após <?php ? Mostre como ficou o script. Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 19, 2014 Coloquei, veja: <?phpini_set( 'display_errors', true );error_reporting( E_ALL );/* ========================== Define variables ========================== */ #Your e-mail address define("__TO__", "jeweber@gmail.com"); #Message subject define("__SUBJECT__", "Dúvidas"); #Success message define('__SUCCESS_MESSAGE__', "Sua mensagem foi enviada!"); #Error message define('__ERROR_MESSAGE__', "Erro, sua mensagem não pode ser enviada"); #Messege when one or more fields are empty define('__MESSAGE_EMPTY_FILDS__', "Por favor preencha todos os campos");/* ======================== End Define variables ======================== */ //Send mail function function send_mail($to,$subject,$message,$headers){ if(mail($to,$subject,$message,$headers)){ echo json_encode(array('info' => 'success', 'msg' => __SUCCESS_MESSAGE__)); } else { echo json_encode(array('info' => 'error', 'msg' => __ERROR_MESSAGE__)); } } //Check e-mail validation function check_email($email){ if(!@eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){ return false; } else { return true; } } //Get post data if(isset($_POST['nome']) and isset($_POST['mail']) and isset($_POST['comment'])){ $name = $_POST['nome']; $mail = $_POST['mail']; $website = $_POST['assunto']; $comment = $_POST['comment']; if($name == '') { echo json_encode(array('info' => 'error', 'msg' => "Digite seu nome.")); exit(); } else if($mail == '' or check_email($mail) == false){ echo json_encode(array('info' => 'error', 'msg' => "Digite seu e-mail.")); exit(); } else if($comment == ''){ echo json_encode(array('info' => 'error', 'msg' => "Digite sua mensagem.")); exit(); } else { //Send Mail $to = __TO__; $subject = __SUBJECT__ . ' ' . $name; $message = ' <html> <head> <title>Mail from '. $name .'</title> </head> <body> <table style="width: 500px; font-family: arial; font-size: 14px;" border="1"> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Name:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $nome .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">E-mail:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $mail .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Website:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $assunto .'</td> </tr> <tr style="height: 32px;"> <th align="right" style="width:150px; padding-right:5px;">Comment:</th> <td align="left" style="padding-left:5px; line-height: 20px;">'. $comment .'</td> </tr> </table> </body> </html> '; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'From: ' . $mail . "\r\n"; send_mail($to,$subject,$message,$headers); } } else { echo json_encode(array('info' => 'error', 'msg' => __MESSAGE_EMPTY_FILDS__)); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Novembro 19, 2014 Ali no html, na primeira linha : <form id="contact-form"> Num tinha que ser assim: <form id="contact-form" action="contact.php"> Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 19, 2014 Então, ja mudei para como você mencionou, mas ele aponta para o script.js que faz esta função já. Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Novembro 19, 2014 Hmmm...já tentou testar o form.php sem o formulário, para saber se é html ou php? Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 20, 2014 Ainda não vou tentar jogar no servidor para ver se dá algum erro. Qualquer coisa mando noticias. Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Novembro 20, 2014 Eu aprendi esses dias que para testar o form.php basta enviar para o servidor e digitar o endereço do site assim:http://www.seusite.com.br/form.php Assim que você acessar, automaticamente o sistema lhe envia um email. Penso que ninguem no mundo (pelo menos um usuario comum) vai acessar este arquivo. Daí única coisa que você tem que fazer é trocar o comando que recebe o email do formulario por um outro fixo. Ao invés disso: $mail = $_POST['mail']; por $mail = 'seuemail@email.com.br'; Por fim se não conseguir, usa esse modelo do php.net. Foi só com ele que consegui fazer os meus forms funcionarem: http://php.net/manual/en/function.mail.php Compartilhar este post Link para o post Compartilhar em outros sites
jeweber 0 Denunciar post Postado Novembro 20, 2014 Testei aqui e deu certo, acho que o problema está no código mesmo. Estranho que não retorna nenhum erro, ele simplesmente diz que a mensagem foi enviada. Compartilhar este post Link para o post Compartilhar em outros sites
Apenas Eu 13 Denunciar post Postado Novembro 24, 2014 Deu certo o seu cód que você postou ou o código do php.net? :) Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 23, 2015 Desculpe estar reabrindo este tópico, porém estou com o mesmo problema neste formulário e o nobre amigo não postou como resolveu. Algu´´em conseguiu resolver ? 1. Como faz o envio? Usando mail() ou SMTP autenticado? Usa alguma classe? 2. Está testando em localhost ou no servidor remoto? Recomendo usar PHPMailer. Veja: http://rberaldo.com.br/enviando-e-mails-com-a-classe-phpmailer/ Compartilhar este post Link para o post Compartilhar em outros sites