Eduardo Rissao Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 Olá, Estou com muita dificuldade em algo que me parece simples, que envolve envio de e-mails por meio de um formulário de contato. Bem, vamos lá. Tenho um formulário de contato no meu site, porem sem funcionar. Link: http://grmoveisplane....br/contato.php O código para envio do e-mail dele é esse: <? $assu = "Contato pelo Site"; $header = "From: {$email}\n"; $header .= "Organization: GR Moveis\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=iso-8859-1\n"; $header .= "Content-Transfer-Encoding: 8bit\n"; $mens = "<html><head><title>Entre em contato</title> </head> <body bgcolor=#ffffff text=#000000 topmargin=0 leftmargin=0> <table width=100% align=center> <tr> <td width=30%>Nome</td> <td>$nome</td> </tr> <tr> <td width=30%>E-mail</td> <td>$email</td> </tr> <tr> <td width=30%>Assunto</td> <td>$mensagem</td> </tr> </table> </body>"; require_once('mail/phpmailer/class.phpmailer.php'); $time = time(); $mail = new PHPMailer(); //$body = file_get_contents('contents.html'); //$body = eregi_replace("[\]",'',$body); $body = $mens; $mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "tls"; $mail->Host = "mx2.weblink.com.br"; // sets the SMTP server $mail->Port = 2525; // set the SMTP port for the GMAIL server $mail->Username = "[email protected]"; // SMTP account username $mail->Password = "SENHADOEMAIL"; // SMTP account password $mail->SetFrom($email, $nome); $mail->AddReplyTo($email, $nome); $mail->Subject = $assu; $mail->AltBody = "Para ver a mensagem, use um leitor de e-mail compativel com HTML."; // optional, comment out and test $mail->MsgHTML($body); $address = "[email protected]"; $mail->AddAddress($address, "Contato"); //$mail->AddAttachment("images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo "A mensagem nao pode ser enviada. Mensagem de erro: " . $mail->ErrorInfo; } else { echo "E-mail enviado com sucesso!"; } ?> O problema dele está na hora de receber o e-mail. Acontece assim: Eu digito todas as informações no formulário de contato: http://prntscr.com/6lzme0 Clico em Enviar. Aparece que foi enviado com sucesso: http://prntscr.com/6lzmv6 Até ai beleza. Entro no e-mail de teste que eu criei e coloquei para receber os e-mail do formulário. O e-mail é recebido: http://prntscr.com/6lzngk Porem, ele não envia informação NENHUMA do formulário de contato, veja: http://prntscr.com/6lznoz Alguem tem ideia do que eu posso fazer para fazer essa coisa funcionar? Atenciosamente, Eduardo Rissão Link para o comentário Compartilhar em outros sites More sharing options...
Pedro Sodre Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 Onde você está recebendo as variáveis do formulário (POST ou GET)? Link para o comentário Compartilhar em outros sites More sharing options...
Ocean Host Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 Tá faltando o GET da variável $mensagem e $nome, você deve setar o GET nesta página para pegar do formulário e botar para enviar pegando do seu formulário o mesmo que está no name="**". Link para o comentário Compartilhar em outros sites More sharing options...
Anger Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 Olá, Estou com muita dificuldade em algo que me parece simples, que envolve envio de e-mails por meio de um formulário de contato. Bem, vamos lá. Tenho um formulário de contato no meu site, porem sem funcionar. Link: http://grmoveisplane....br/contato.php O código para envio do e-mail dele é esse: <? $assu = "Contato pelo Site"; $header = "From: {$email}\n"; $header .= "Organization: GR Moveis\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=iso-8859-1\n"; $header .= "Content-Transfer-Encoding: 8bit\n"; $mens = "<html><head><title>Entre em contato</title> </head> <body bgcolor=#ffffff text=#000000 topmargin=0 leftmargin=0> <table width=100% align=center> <tr> <td width=30%>Nome</td> <td>$nome</td> </tr> <tr> <td width=30%>E-mail</td> <td>$email</td> </tr> <tr> <td width=30%>Assunto</td> <td>$mensagem</td> </tr> </table> </body>"; require_once('mail/phpmailer/class.phpmailer.php'); $time = time(); $mail = new PHPMailer(); //$body = file_get_contents('contents.html'); //$body = eregi_replace("[\]",'',$body); $body = $mens; $mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "tls"; $mail->Host = "mx2.weblink.com.br"; // sets the SMTP server $mail->Port = 2525; // set the SMTP port for the GMAIL server $mail->Username = "[email protected]"; // SMTP account username $mail->Password = "SENHADOEMAIL"; // SMTP account password $mail->SetFrom($email, $nome); $mail->AddReplyTo($email, $nome); $mail->Subject = $assu; $mail->AltBody = "Para ver a mensagem, use um leitor de e-mail compativel com HTML."; // optional, comment out and test $mail->MsgHTML($body); $address = "[email protected]"; $mail->AddAddress($address, "Contato"); //$mail->AddAttachment("images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo "A mensagem nao pode ser enviada. Mensagem de erro: " . $mail->ErrorInfo; } else { echo "E-mail enviado com sucesso!"; } ?> O problema dele está na hora de receber o e-mail. Acontece assim: Eu digito todas as informações no formulário de contato: http://prntscr.com/6lzme0 Clico em Enviar. Aparece que foi enviado com sucesso: http://prntscr.com/6lzmv6 Até ai beleza. Entro no e-mail de teste que eu criei e coloquei para receber os e-mail do formulário. O e-mail é recebido: http://prntscr.com/6lzngk Porem, ele não envia informação NENHUMA do formulário de contato, veja: http://prntscr.com/6lznoz Alguem tem ideia do que eu posso fazer para fazer essa coisa funcionar? Atenciosamente, Eduardo Rissão No caso, tu tens que englobar a sua tabela do formulário com o atributo form <form method="POST"> </form> Ajude o fórum! Antes de postar, leiam as regras de postagem aqui. Link para o comentário Compartilhar em outros sites More sharing options...
Eduardo Rissao Postado Março 27, 2015 Autor Compartilhar Postado Março 27, 2015 No caso, tu tens que englobar a sua tabela do formulário com o atributo form <form method="POST"> </form> É que o formulário em si fica em outro php, um que só monta a página mesmo. Ai é o código que envia o e-mail. Tá faltando o GET da variável $mensagem e $nome, você deve setar o GET nesta página para pegar do formulário e botar para enviar pegando do seu formulário o mesmo que está no name="**". Pode dar um exemplo, fazendo o get do nome e colocando no código para mim? O resto eu faço... Onde você está recebendo as variáveis do formulário (POST ou GET)? Então, acho que nenhum dos dois. O estranho é que antes isso funcionava.. (Parou depois que transferiu o site) Link para o comentário Compartilhar em outros sites More sharing options...
Anger Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 @Eduardo Rissao Exemplo de um formulário básico: enviar.php <? //pega as variaveis por POST $nome = $_POST["nome"]; $email = $_POST["email"]; $assunto = $_POST["assunto"]; $mensagem = $_POST["mensagem"]; global $email; //função para validar a variável $email no script todo $data = date("d/m/y"); //função para pegar a data de envio do e-mail $hora = date("H:i"); //para pegar a hora com a função date //aqui envia o e-mail para você mail ("[email protected]", //email aonde o php vai enviar os dados do form "$assunto", "Data: $data\nHora: $hora\nNome: $nome\nE-mail: $email\n\nMensagem: $mensagem", "From: $email" ); //aqui são as configurações para enviar o e-mail para o visitante $site = "[email protected]"; //o e-mail que aparecerá na caixa postal do visitante $titulo = "Pedido de contato enviado com sucesso!"; //titulo da mensagem enviada para o visitante $msg = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato"; //aqui envia o e-mail de auto-resposta para o visitante mail("$email", "$titulo", "$msg", ); $alerta = "Obrigado! Sua mensagem foi enviada com sucesso."; // Mostra a mensagem acima e redireciona para index.html echo "<script>location.href=`index.html`; alert(`$alerta`);</script>"; ?> código html <form id="topbar_login" action="enviar.php" method="POST"> <input type="hidden"> <table border="0" cellpadding="0" cellspacing="0" width="500"> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Nome:<br> <input type="text" size="30" name="nome" value=""></td> </tr> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">E-mail:<br> <input type="text" size="30" name="email" value=""></td> </tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Assunto:<br> <input type="text" size="30" name="assunto" value=""></td> </tr> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Mensagem:<br> <textarea cols="40" rows="10" name="mensagem"></textarea> </td> </tr> <tr> <td height="40" align="left"><input name="submit" type="submit" class="button" style="width:100px" value="Entrar"><input name="reset" type="reset" class="button" value="Limpar"></td> </tr> </table> </form> Ajude o fórum! Antes de postar, leiam as regras de postagem aqui. Link para o comentário Compartilhar em outros sites More sharing options...
Eduardo Rissao Postado Março 27, 2015 Autor Compartilhar Postado Março 27, 2015 @Eduardo Rissao Exemplo de um formulário básico: enviar.php <? //pega as variaveis por POST $nome = $_POST["nome"]; $email = $_POST["email"]; $assunto = $_POST["assunto"]; $mensagem = $_POST["mensagem"]; global $email; //função para validar a variável $email no script todo $data = date("d/m/y"); //função para pegar a data de envio do e-mail $hora = date("H:i"); //para pegar a hora com a função date //aqui envia o e-mail para você mail ("[email protected]", //email aonde o php vai enviar os dados do form "$assunto", "Data: $data\nHora: $hora\nNome: $nome\nE-mail: $email\n\nMensagem: $mensagem", "From: $email" ); //aqui são as configurações para enviar o e-mail para o visitante $site = "[email protected]"; //o e-mail que aparecerá na caixa postal do visitante $titulo = "Pedido de contato enviado com sucesso!"; //titulo da mensagem enviada para o visitante $msg = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato"; //aqui envia o e-mail de auto-resposta para o visitante mail("$email", "$titulo", "$msg", ); $alerta = "Obrigado! Sua mensagem foi enviada com sucesso."; // Mostra a mensagem acima e redireciona para index.html echo "<script>location.href=`index.html`; alert(`$alerta`);</script>"; ?> código html <form id="topbar_login" action="enviar.php" method="POST"> <input type="hidden"> <table border="0" cellpadding="0" cellspacing="0" width="500"> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Nome:<br> <input type="text" size="30" name="nome" value=""></td> </tr> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">E-mail:<br> <input type="text" size="30" name="email" value=""></td> </tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Assunto:<br> <input type="text" size="30" name="assunto" value=""></td> </tr> <tr> <td width="221" height="25" align="left" class="classe caso queira usar css" scope="col">Mensagem:<br> <textarea cols="40" rows="10" name="mensagem"></textarea> </td> </tr> <tr> <td height="40" align="left"><input name="submit" type="submit" class="button" style="width:100px" value="Entrar"><input name="reset" type="reset" class="button" value="Limpar"></td> </tr> </table> </form> Funcionou!!!! Muito obrigado!!! Ps: Tive que desabilitar a auto resposta pelo php (vou fazer pelo painel da host), pois dava erro. Link para o comentário Compartilhar em outros sites More sharing options...
Anger Postado Março 27, 2015 Compartilhar Postado Março 27, 2015 Funcionou!!!! Muito obrigado!!! Ps: Tive que desabilitar a auto resposta pelo php (vou fazer pelo painel da host), pois dava erro. Estranho! Mas que bom que funcionou. Posso fechar o tópico, ou teria mais alguma dúvida? Ajude o fórum! Antes de postar, leiam as regras de postagem aqui. Link para o comentário Compartilhar em outros sites More sharing options...
Eduardo Rissao Postado Março 28, 2015 Autor Compartilhar Postado Março 28, 2015 Estranho! Mas que bom que funcionou. Posso fechar o tópico, ou teria mais alguma dúvida? Pode fechar =D Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados