Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NgM_Me_KuRtE

Formulário de Contacto

Recommended Posts

Boas gente.

 

É o seguinte.... criei uma página onde tem um form, para enviar e-mail, o que acontece é que não envia o email. Dá a mensagem a dizer que foi enviado o email, mas nunca recebo o email... eu saquei um script da net, mas nada, já tentei com vários e até agora nada....

 

Este é o código do form

 

                <form method="POST" id="subscribe" action="enviar.php" >
                   <input type="text" value="Enter your name" name="name" onBlur="if (this.value == '')  
                   {this.value = 'Enter your name';}"  
                   onfocus="if (this.value == 'Enter your name')  
                   {this.value = '';}" />
                    <input type="text" value="Enter your email" name="email" onBlur="if (this.value == '')  
                   {this.value = 'Enter your email';}"  
                   onfocus="if (this.value == 'Enter your email')  
                   {this.value = '';}" />
                 <input type="text" value="Type your subject here" name="assunto" onBlur="if (this.value == '')  
                 {this.value = 'Type your subject here';}"  
                   onfocus="if (this.value == 'Type your subject here')  
                   {this.value = '';}" />
                   <input type="text" value="Type your message here" name="message" onBlur="if (this.value == '')  
                 {this.value = 'Type your message here';}"  
                   onfocus="if (this.value == 'Type your message here')  
                   {this.value = '';}" />
                   <input type="submit" id="submit" value="Enviar" />
               </form> 

 

O código do enviar.php é este

<?
##########################################################
/////////////////////////////////////////////////////  ###
/// Autor: Mateus Campos                         ////  ###
/// E-mail: mateuscampos@globo.com               ////  ###
/// Site: www.centralwarez.com                   ////  ###
/// Msn: mateus@centralwarez.com                 ////  ###
/// Obs: favor não retirar os nossos créditos!!! ////  ###
/////////////////////////////////////////////////////  ###
##########################################################
// aqui começa o script
//pega as variaveis por POST
$nome      = $_POST["name"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["message"];

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
$ip        = $_SERVER['REMOTE_ADDR'];           //função para pegar o ip do usuário
$navegador = $_SERVER['HTTP_USER_AGENT'];       //função para pegar o navegador do visitante
$hora      = date("H:i");                       //para pegar a hora com a função date

//aqui envia o e-mail para você
mail ("NgM_Me_KuRtE@hotmail.com",                       //email aonde o php vai enviar os dados do form
     "$assunto",
     "Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nE-mail: $email\nMensagem: $mensagem",
     "From: $email"
    );

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "NgM_Me_KuRtE@hotmail.com";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "Junta de Freguesia de Gouveias";                  //titulo da mensagem enviada para o visitante
$msg    = "$nome, obrigado por entrar em contacto connosco, em breve entraremos em contacto";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
    "$titulo",
    "$msg",
    "From: $site"
   );
echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";
echo "<p align=center>Respondemos o mais breve possivel.</p>";
?>

 

Se poderem ajudar agradecia imenso, é que não estou mesmo a ver do que seja...

 

Obrigado desde já! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite NgM_Me_KuRtE! :)

 

Voce já viu se a função mail está habilitada no seu servidor PHP?

 

Copie e cole isto abaixo numa página PHP salve com qualquer nome (ex. teste.php)e envie ao seu servidor e abra ela pelo navegador.

 

<?php

mail("seu_email@provedor.com.br", "TESTE MAIL DO PHP", "Mensagem de teste do provedor com PHP funcionando.");

?>

 

Se estiver tudo correto e voce receberá esta mensagem no seu webmail, caso contrário algo no seu código está errado e será melhor revisá-lo. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta desde já!

 

Fiz isso que você disse e não recebi nada... isso quer dizer que não está habilitado essa funcão no servidor? é que falei com o responsável onde tenho o alojamento e ele disse-me que estava ligado.... irei falar com ele de novo a ver o que ele diz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

NgM_Me_KuRtE!

 

Caso esteja funcionando a função Mail() do seu servidor PHP, experimente usar este código:

 

<?php
  /* Valores passados pelo Formulario */
  $nome = utf8_decode(@$_POST['nome']);
  $email = utf8_decode(@$_POST['email']);
  $telefone = utf8_decode(@$_POST['telefone']);   
  $assunto = utf8_decode(@$_POST['assunto']);
  $mensagem = utf8_decode(@$_POST['mensagem']);
  $news = utf8_decode(@$_POST['novidades']);
  $programas = utf8_decode(@$_POST['anexo']);
  /* Coloque seu E-mail aqui */
  $para = "seu.email@provedor.com.br";
  /* Aqui uma pequena verificação para evitar que envie E-mails sem valores */
  if ($nome != "" && $email != "" && $telefone != "" && $assunto != "" && $mensagem != "") {
     /* Monta-se o E-mail */
     /* Criei um exemplo bem simples de E-mail usando HTML */
     /* Fique livre para modificar conforme desejar */
     $corpo = '<html><head><title><h5>'.$assunto.'</h5></title></head><body>';
     $corpo .= 'Nome: '.$nome.'<br /> E-mail: '.$email.'<br />Quer receber novidades sobre: '.$news.'<br />';
     $corpo .= 'Assuntos favoritos: '.$programas.'<br />';
     $corpo .= 'Telefone: '.$telefone.'<br />Assunto: '.$assunto.'<br />Mensagem: '.$mensagem;
     /* Aqui modifico o tipo de E-mail para o formato HTML */
     $headers = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     /* Aqui mudo o cabeçalho para exibir o E-mail de quem enviou */
     $headers .= 'From:'. $email . "\r\n";
     /* Por fim envio o E-mail com os dados recebidos do Formulário */
     mail($para, $assunto, $corpo, $headers);
     /* Retorno um Ok para o Formulário */
     echo "Seu e-mail foi enviado com sucesso!";
  /* Caso os campos não sejam preenchidos */
  } else {
     /* Retorna o erro ao Formulário */
     echo "O e-mail não pôde ser enviado, preencha todos os campos!";
  }
?>

 

Qualquer parada me avisa !!! ;)

 

NgM_Me_KuRtE

 

É bom verificar com ele se não há alguma configuração no smtp no php.ini! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

NgM_Me_KuRtE

 

Voce está usando o hotmail, veja se sua conta tem IMAPI, e se está habilitado, o imapi serve para receber e enviar e-mail, eu uso o gmail e só funciona receber se meu IMAPI estiver habilitado.

 

Caso persista é algo ai com seu servidor de PHP alguma configuração local, ai sugiro que voce tente usar um outro servidor ou de um colega afim de testar seu código, se o seu código funcionar e voce receber um e-mail, com certeza é algo ai no seu servidor. ;)

 

Continue testando e nos avise aqui! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muitos servidores só liberam o envio de emails pela função mail se o remetente for do mesmo domínio do site (site.com.br e qualquer_coisa@site.com.br).

 

Para ficar mais fácil, sugiro que você utilize a classe PHPMailer, pois outra possibilidade podem ser os headers do email.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois, é mesmo estranho... deve ser do meu servidor... mostrei-lhe o código que o jonny disse primeiro da função mail(), e ele disse que se ele colocar isso no servidor dele, ele envia o e-mail... o estranho é que ontem falei com o dono do alojamento e ele disse que está activado a função e-mail ou phpemail, algo assim

 

Bem pessoal, já meti a dar.... outra coisa...

 

"Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nE-mail: $email\nMensagem: $mensagem",

 

nesse código como posso meter o nome em bold ou com outra cor, para aparecer assim no e-mail que receber?

 

Obrigado desde já! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonny, nesse código que tu mandou:

if ($nome != "" && $email != "" && $telefone != "" && $assunto != "" && $mensagem != "")

 

Eu acho que o operador lógico não poderia ser && e sim or ou ||, pois do modo em que está, ele só daria erro se todas as variaveis fossem igual a "", se tivesse só 1 variavel em branco não iria dar erro.

 

Abraços e fica a dica :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite F3RR4M3N745 :)

 

Boa observação, pois neste código visa voce tratar um formulário postado todo em branco, não apenas alguns campos, mas exitem métodos em que voce testa campo-a-campo e se o valor digitado é válido, pois pode observar que no campo Nome por exemplo eu não tratei que ali só deve entrar letras e não números, portanto eu poderia escrever ali por exemplo IMASTERS, fazer isso 1M45T3R5, até isso voce sabe tem tratamento, porém não me aprofundei nisso, só postei o arroz com feijão ;).

 

Feliz Ano Novo a todos os colegas aqui do fórum!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite NgM_Me_KuRtE :)

 

Não testei enviando só fazendo aparecer na tela, mas experimenta: "Nome:<b><font color='#0000CC'>$nome</font></b>\nData: ... Coloquei em Negrito com fonte de cor Azul. ;)

 

Boa Noite F3RR4M3N745 :)

 

Não coloquei lá o código simples para que ele se esforce a pensar, longe disso !!!

Se eu puder e tiver a competência para resolver entrego pronto ao colega para que ele resolva logo seu problema e depois mais tarde tenha conforto de poder estudar.

 

Eu não o fiz justamente por não ter aqui em mãos o código completo e pronto, teria EU que pesquisar ler e implementar, mas eu sei que isso é possível até porque lógica de programação é uma só, o que muda é a linguagem e a sintaxe apenas.

 

Eu realmente queria ter aqui em mão o problema resolvido, para passar o mais rápido possível ao NgM_Me_KuRtE. ;)

 

Falo isso porque já recebí muita ajuda aqui assim desse jeito e pago sempre na mesma moeda e com gorjeta se puder ! :joia:

 

Me desculpem ai os colegas se eu passei alguma impressão errada da minha parte! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro... coloque esse comando no começo do seu código:

ini_set("display_errors", 1);

 

Roda seu primeiro código.

Se mostrar algum erro você saberá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.