Ir para conteúdo
  • Cadastre-se

Ajuda PHPMailer


Posts Recomendados

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:

  1. <?
  2. $assu = "Contato pelo Site";
  3. $header = "From: {$email}\n";
  4. $header .= "Organization: GR Moveis\n";
  5. $header .= "MIME-Version: 1.0\n";
  6. $header .= "Content-Type: text/html; charset=iso-8859-1\n";
  7. $header .= "Content-Transfer-Encoding: 8bit\n";
  8. $mens = "<html><head><title>Entre em contato</title>
  9. </head>
  10. <body bgcolor=#ffffff text=#000000 topmargin=0 leftmargin=0>
  11.  
  12. <table width=100% align=center>
  13.     <tr>
  14.         <td width=30%>Nome</td>
  15.         <td>$nome</td>
  16.     </tr>
  17.     
  18.     <tr>
  19.         <td width=30%>E-mail</td>
  20.         <td>$email</td>
  21.     </tr>
  22.     
  23.     <tr>
  24.         <td width=30%>Assunto</td>
  25.         <td>$mensagem</td>
  26.     </tr>
  27. </table>
  28.  
  29. </body>";
  30.  
  31. require_once('mail/phpmailer/class.phpmailer.php');
  32.  
  33. $time = time();
  34.  
  35. $mail = new PHPMailer();
  36.  
  37. //$body = file_get_contents('contents.html');
  38. //$body = eregi_replace("[\]",'',$body);
  39.  
  40. $body = $mens;
  41.  
  42. $mail->IsSMTP(); // telling the class to use SMTP
  43. $mail->SMTPDebug = 0; // enables SMTP debug information (for testing)
  44. // 1 = errors and messages
  45. // 2 = messages only
  46. $mail->SMTPAuth = true; // enable SMTP authentication
  47. $mail->SMTPSecure = "tls";
  48. $mail->Host = "mx2.weblink.com.br"; // sets the SMTP server
  49. $mail->Port = 2525; // set the SMTP port for the GMAIL server
  50. $mail->Username = "[email protected]"; // SMTP account username
  51. $mail->Password = "SENHADOEMAIL"; // SMTP account password
  52.  
  53. $mail->SetFrom($email, $nome);
  54.  
  55. $mail->AddReplyTo($email, $nome);
  56.  
  57. $mail->Subject = $assu;
  58.  
  59. $mail->AltBody = "Para ver a mensagem, use um leitor de e-mail compativel com HTML."; // optional, comment out and test
  60.  
  61. $mail->MsgHTML($body);
  62.  
  63. $address = "[email protected]";
  64. $mail->AddAddress($address, "Contato");
  65.  
  66. //$mail->AddAttachment("images/phpmailer.gif"); // attachment
  67. //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
  68.  
  69. if(!$mail->Send()) {
  70.     echo "A mensagem nao pode ser enviada. Mensagem de erro: " . $mail->ErrorInfo;
  71. } else {
  72.     echo "E-mail enviado com sucesso!";
  73. }
  74. ?>

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

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:

  1. <?
  2. $assu = "Contato pelo Site";
  3. $header = "From: {$email}\n";
  4. $header .= "Organization: GR Moveis\n";
  5. $header .= "MIME-Version: 1.0\n";
  6. $header .= "Content-Type: text/html; charset=iso-8859-1\n";
  7. $header .= "Content-Transfer-Encoding: 8bit\n";
  8. $mens = "<html><head><title>Entre em contato</title>
  9. </head>
  10. <body bgcolor=#ffffff text=#000000 topmargin=0 leftmargin=0>
  11.  
  12. <table width=100% align=center>
  13.     <tr>
  14.         <td width=30%>Nome</td>
  15.         <td>$nome</td>
  16.     </tr>
  17.     
  18.     <tr>
  19.         <td width=30%>E-mail</td>
  20.         <td>$email</td>
  21.     </tr>
  22.     
  23.     <tr>
  24.         <td width=30%>Assunto</td>
  25.         <td>$mensagem</td>
  26.     </tr>
  27. </table>
  28.  
  29. </body>";
  30.  
  31. require_once('mail/phpmailer/class.phpmailer.php');
  32.  
  33. $time = time();
  34.  
  35. $mail = new PHPMailer();
  36.  
  37. //$body = file_get_contents('contents.html');
  38. //$body = eregi_replace("[\]",'',$body);
  39.  
  40. $body = $mens;
  41.  
  42. $mail->IsSMTP(); // telling the class to use SMTP
  43. $mail->SMTPDebug = 0; // enables SMTP debug information (for testing)
  44. // 1 = errors and messages
  45. // 2 = messages only
  46. $mail->SMTPAuth = true; // enable SMTP authentication
  47. $mail->SMTPSecure = "tls";
  48. $mail->Host = "mx2.weblink.com.br"; // sets the SMTP server
  49. $mail->Port = 2525; // set the SMTP port for the GMAIL server
  50. $mail->Username = "[email protected]"; // SMTP account username
  51. $mail->Password = "SENHADOEMAIL"; // SMTP account password
  52.  
  53. $mail->SetFrom($email, $nome);
  54.  
  55. $mail->AddReplyTo($email, $nome);
  56.  
  57. $mail->Subject = $assu;
  58.  
  59. $mail->AltBody = "Para ver a mensagem, use um leitor de e-mail compativel com HTML."; // optional, comment out and test
  60.  
  61. $mail->MsgHTML($body);
  62.  
  63. $address = "[email protected]";
  64. $mail->AddAddress($address, "Contato");
  65.  
  66. //$mail->AddAttachment("images/phpmailer.gif"); // attachment
  67. //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
  68.  
  69. if(!$mail->Send()) {
  70.     echo "A mensagem nao pode ser enviada. Mensagem de erro: " . $mail->ErrorInfo;
  71. } else {
  72.     echo "E-mail enviado com sucesso!";
  73. }
  74. ?>

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

 

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

@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

 

@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

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?