Fillipi 0 Denunciar post Postado Abril 19, 2010 Boa Noite, Eu fiz um formulário de contato simples a pouco mais de um ano e ele funcionava completamente bem, até que ultimamente eu notei que não venho recebendo mensagem alguma, decidi fazer um teste e tudo fluiu normalmente, foi até confirmado o envio, mas não chegou nada na minha caixa de entrada. Não alterei o código de forma alguma, tinha plena certeza de que era algum problema no servidor, porém eles me disseram que só pode ser problema na programação, como não tenho conhecimento avançado em PHP decidi tirar minhas dúvidas aqui, os códigos seguem abaixo. contato.html <style type="text/css"> <!-- .style1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #666666; } .style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #666666; font-weight: bold; } .style4 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #003366; font-weight: bold; } a:link { color: #006699; text-decoration: none; } a:visited { color: #006699; text-decoration: none; } a:active { color: #006699; text-decoration: none; } a:hover { text-decoration: underline; color: #003366; } --> </style> <blockquote> <p class="style1">Utilize o formulário abaixo para nos contatar. </p> <p class="style1">*Para Orçamentos clique <a href="orcamento.html" target="_parent">Aqui </a></p> <form name="contato" method="POST" action="formulario.php"> <input type="hidden" name="emaildest" value="fillipialmeida@hotmail.com"> <input type="hidden" name="redirecionar" value="sucesso.html" target="_self"> <table width="503" border="0" cellpadding="3" cellspacing="0" class="tabela" style="cursor:default;"> <tr> <td width="497"><font color="#E22B2B" class="style1"><strong>Nome:</strong></font></td> </tr> <tr> <td align="left"><input name="nome" type="text" class="form" id="nome" style="height:20px; width:400px;" maxlength="200" border="0" onKeyDown="return valida();" onKeyUp="return valida();" /> </td> </tr> <tr> <td><font color="#E22B2B" class="style3">E-mail:</font></td> </tr> <tr> <td><input name="email" type="text" class="form" id="email" style="height:20px; width:400px;" maxlength="100" border="0" onKeyDown="return valida();" onKeyUp="return valida();" /> </td> </tr> <tr> <td class="style3">Telefone com DDD :</td> </tr> <tr> <td align="left"><input name="telefone" type="text" class="form" id="telefone" style="height:20px; width:400px;" maxlength="200" border="0" /> <span class="style4">(00-0000-0000)</span> </td> </tr> <tr> <td><span class="style3">Mensagem:</span></td> </tr> <tr> <td align="left"><textarea name="msg" class="form" id="mensagem" style="height:100px; width:400px;" border="0" onKeyDown="return valida();" onKeyUp="return valida();"></textarea> </td> </tr> <tr align="right"> <td><table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabela" style="cursor:default;"> <tr> <td width="10"><font color="#E22B2B"> </font></td> <td width="52"><input name="BT" type="submit" id="BT" style="width: 60px; height: 25px; background: #003366; color: #FFFFFF; border: 1px solid; border-color: #000000 #DDDDDD #DDDDDD #000000; font: bold 12px Verdana;" value="Enviar" /></td> <td width="15"></td> <td width="413"><input name="reset" type="reset" style="width: 60px; height: 25px; background: #003366; color: #FFFFFF; border: 1px solid; border-color: #000000 #DDDDDD #DDDDDD #000000; font: bold 12px Verdana;" value="Limpar" /></td> </tr> </table></td> </tr> </table> </form> </blockquote> formulario.php <? $nome = $_POST["nome"]; $email = $_POST["email"]; $telefone = $_POST["telefone"]; $mensagem = $_POST["msg"]; 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 //aqui envia o e-mail para você mail ("fillipialmeida@hotmail.com", //email aonde o php vai enviar os dados do form "From: $email", "Data: $data\nIp: $ip\n\nNome: $nome\n\nE-mail: $email\n\nTelefone: $telefone\n\nMensagem: $msg" ); header("Location: sucesso.html"); ?> Para ver o formulário online o endereço é http://vilana.com.br/indexcontato.html é isso, agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
BoinaVerde 16 Denunciar post Postado Abril 19, 2010 a variavel ta errada: $mensagem = $_POST["msg"]; ....nMensagem: $msg" Compartilhar este post Link para o post Compartilhar em outros sites
Fillipi 0 Denunciar post Postado Abril 19, 2010 a variavel ta errada: $mensagem = $_POST["msg"]; ....nMensagem: $msg" Eu corrigi a variavel errada, mas continua com o mesmo erro :huh: , inclusive acho que a variavel errada foi uma das minhas tentativas de tentar arrumar algo que não precisava de conserto, é possível acessar o formulario pelo seguinte endereço http://fulltrip.com.br/contato.html (site diferente, mas é o mesmo formulario). segue o código: <? $nome = $_POST["nome"]; $email = $_POST["email"]; $telefone = $_POST["telefone"]; $mensagem = $_POST["msg"]; 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 //aqui envia o e-mail para você mail ("fillipialmeida@hotmail.com", //email aonde o php vai enviar os dados do form "From: $email", "Data: $data\nIp: $ip\n\nNome: $nome\n\nE-mail: $email\n\nTelefone: $telefone\n\nMensagem: $mensagem" ); header("Location: sucesso.html"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
BoinaVerde 16 Denunciar post Postado Abril 19, 2010 Vou confessar que nunca consegui enviar email sem ser com a classe phpmailer adapte o seu form para o script aki, eu uso sem problemas a muito tempo, inclusive esse e com autenticacao SSl do Gmail. Baixe a Clique aqui e so criar uma pasta no local do seu projeto e usar. <?php require("PHPMailer/class.phpmailer.php"); $depto = $_POST["depto"]; $mail = new PHPMailer(); $mail->SetLanguage("br", "PHPMailer/language"); // ajusto a lingua a ser utilizadda $mail->Port = "465"; // ajusto a porta de smt a ser utilizada. Neste caso, a 587 que o GMail utiliza $mail->SMTPSecure = "ssl"; // ajusto o tipo de comunicação a ser utilizada, no caso, a TLS do GMail $mail->IsSMTP(); // ajusto o email para utilizar protocolo SMTP $mail->Host = "smtp.gmail.com"; // especifico o endereço do servidor smtp do GMail $mail->SMTPAuth = true; // ativo a autenticação SMTP, no caso do GMail, é necessário $mail->Username = "Seu usuario"; // Usuário SMTP do GMail $mail->Password = "Sua senha"; // Senha do usuário SMTP do GMail // Aqui algumas informações que serão enviadas no cabeçalho do email $mail->From = $_POST['email']; // Email de quem envia o email $mail->FromName = htmlentities($_POST['nome']); // Nome de quem envia o email $mail->AddAddress("$depto"); // Endereço e nome de quem vai receber o email, o nome é opcional $mail->WordWrap = 50; // quebra linha sempre que uma linha atingir 50 caracteres # $mail->AddAttachment("/var/tmp/file.tar.gz"); // adc arquivo anexo. *opcional* # $mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // adc outro arquivo anexo com nome (opcional). *opcional* $mail->IsHTML(true); // ajusto envio do email no formato HTML $mail->Subject = htmlentities($_POST['assunto']); // Aqui colocar o assunto do email $mail->Body = htmlentities($_POST['mensagem']); // aqui o corpo do email para usuarios que tem a opção text/html do seu webmail ou cliente de email ativada $mail->AltBody = htmlentities($_POST['mensagem']);; // aqui o corpo do email para usuarios que tem a opção text/html do seu webmail ou cliente de email desativada if(!$mail->Send()) { echo "Mensagem não pode ser enviada. <p>"; echo "Erro: " . $mail->ErrorInfo; exit; } else{ header('Location: obrigado.php'); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
ozorio silva 0 Denunciar post Postado Abril 20, 2010 tenta assim qualquer coisa de uma olhadaaqui <?php class Formail {// nossa clase // atributos public $nome = ""; public $email = ""; public $telefone = ""; public $mensagem = ""; public $headers = ""; public $destinatario = ""; public $msg = ""; public $client_ip = ""; public $navegador = ""; public $verifica = ""; public $assunto = ""; function __construct() { // metodo contruir // variaveis via POST $this->nome=$_POST["nome"]; $this->email=$_POST["email"]; $this->telefone=$_POST["telefone"]; $this->mensagem=$_POST["msg"]; $this->assunto="Ful Trip Contato"; $this->client_ip=$_SERVER["REMOTE_ADDR" ]; $this->navegador=$_SERVER["HTTP_USER_AGENT"]; // verificação de campos if ($this->nome==NULL){ echo "<script>alert('Insira um Nome');</script>"; echo "<script>history.back();</script>"; exit(); } if ($this->email==NULL){ echo "<script>alert('Insira um Email');</script>"; echo "<script>history.back();</script>"; exit(); } // verificação de email com PREG_MATCH if (!preg_match($this->verifica="^[a-z A-Z 0-9 _ - .]+[@]+[a-z A-Z 0-9 _ - .]+[.]+[a-z A-Z 0-9 _ - .]^", $this->email)){ echo "<script>alert('Insira um Email Valido');</script>"; echo "<script>history.back();</script>"; exit(); } if ($this->telefone==NULL){ echo "<script>alert('Insira um Telefone');</script>"; echo "<script>history.back();</script>"; exit(); } if ($this->mensagem==NULL){ echo "<script>alert('Insira sua Mensagem');</script>"; echo "<script>history.back();</script>"; exit(); } $this->destinatario="destinatario@host.com";//email para onde vai a mensagem // mensagem que vai para o destinatario $this->msg=" <table align='center' width='500' border='1' bordercolor='#006699'> <tr> <th colspan='3' bgcolor='#6699FF'>Formulario de Contato</th> </tr> <tr> <td width='114' bgcolor='#eeeeee'>Nome:</td> <td width='270' bgcolor='#eeeeee'>$this->nome</td> </tr> <tr> <td bgcolor='#eeeeee'>Email:</td> <td bgcolor='#eeeeee'>$this->email</td> </tr> <tr> <td bgcolor='#eeeeee'>Telefone:</td> <td bgcolor='#eeeeee'>$this->telefone</td> </tr> <tr> <td bgcolor='#eeeeee'>Mensagem:</td> <td bgcolor='#eeeeee'>$this->mensagem</td> </tr> <tr> <td bgcolor='#eeeeee'>ip:</td> <td bgcolor='#eeeeee'>$this->client_ip</td> </tr> <tr> <td bgcolor='#eeeeee'>Navegador:</td> <td bgcolor='#eeeeee'>$this->navegador</td> </tr> </table> "; // formataçao para nosso email $this->headers = "From:<$this->email>\n"; // De que email vooê recebeu email do usuario $this->headers .= "Content-Type: text/html; charset=ISO-8859-1\n";//formatação html $this->headers .= "MIME-Version: 1.0\n";/*Extensões Multi função para Mensagens de Internet (sigla MIME do inglês Multipurpose Internet Mail Extensions) é uma norma da internet para o formato das mensagens de correio eletrônico. A grande maioria das mensagens de correio eletrônico são trocadas usando o protocolo SMTP e usam o formato MIME. As mensagens na Internet tem uma associação tão estreita aos padrões SMTP e MIME que algumas vezes são chamadas de mensagens SMTP/MIME.*/ // função mail responsavel de enviar o email $this->mail=mail($this->destinatario,$this->assunto,$this->msg,$this->headers); // verifica se email foi enviado com sucesso if ($this->email==TRUE){ echo "<script>alert('Email Enviado com sucesso');</script>"; echo "<script>window.location.href='index.php'</script>"; } else { echo "<script>alert('Erro Email Falhou');</script>"; echo "<script>history.back();</script>"; exit (); } } } $Formail= new Formail(); // nosso objeto instanciado/criado ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fillipi 0 Denunciar post Postado Abril 20, 2010 BoinaVerde, tentei pelo o seu método, porém é requerido o arquivo class.phpmailer.php que não pode ser encontrado, eu vi as pastas do zip que você indicou baixar e também não encontrei la. Ozorio Silva, seu método funcionou como o meu, apareceu a mensagem confirmando que o e-mail foi enviado com sucesso, porém, nada chega na minha caixa de entrada, inclusive eu troquei o e-mail para ver se não era ele o problema, mas mesmo assim não foi, de qualquer forma no site funcionou normalmente. Eu tenho quase certeza de que é um problema no servidor de onde os sites são hospedados, pois até o fim do ano pasado, o formulario que eu utilizava chegava normalmente, recebiamos curriculums e etc, de repente parou, apesar de funcionar no site. Vou tentar confirmar alguma coisa amanhã, agradeço pela ajuda, se encontrarem algo de errado com algum dos códigos estarei de olho no tópico. ;) Compartilhar este post Link para o post Compartilhar em outros sites
BoinaVerde 16 Denunciar post Postado Abril 20, 2010 Fillipi o arquivo que ele esta requerindo ali esta dentro da pasta zip e que eu renomeei a pasta para PHPMailer ^^ se quiser testar e so renomear a sua para PHPMailer que vai dar certo. Compartilhar este post Link para o post Compartilhar em outros sites
cwbdesgin 0 Denunciar post Postado Abril 20, 2010 Amigo, tente fazer da seguinte maneira, o form em html: <form id="FrmContato" name="FrmContato" action="enviar.php" method="post"> <div class="labels">Nome:</div> <div class="divinput"> <input name="nome" type="text" class="input" size="43" maxlength="30" /> </div> <div class="labels">Telefone:</div> <div class="divinput"> <input id="fone" name="fone" type="text" class="input" size="43" maxlength="30" /> </div> <div class="labels">Email:</div> <div class="divinput"> <input name="email" type="text" class="input" size="43" maxlength="30" id="email" /> </div> <div class="labels">Assunto:</div> <div class="divinput"> <input name="assunto" type="text" class="input" size="43" maxlength="30" id="assunto" /> </div> <div class="labels">Mensagem:</div> <div class="divinput"> <textarea name="msg" cols="50" rows="7" class="input"></textarea> </div> <div class="divinput"> <input name="enviar" id="enviar" type="submit" value="Enviar" /> </div> </form> Ai ele manda as informações para enviar.php via POST enviar.php: <?php $destino = 'seuemail@email.com.br'; $nome = $_POST["nome"]; $email = $_POST["email"]; $telefone = $_POST["fone"]; $assunto = $_POST["assunto"]; $mensagem= $_POST["msg"]; $resposta = mail("$destino", "$assunto - $nome", "Nome: $nome Assunto: $assunto Telefone: $telefone Email: $email Mensagem: $mensagem"); if ($resposta == 1){ echo "<script>alert('Contato enviado com sucesso! Em breve estaremos respondendo.');history.go(-1) </script>"; }else{ echo "<script>alert('Não foi possível enviar o contato, tente mais tarde.');history.go(-1) </script>"; } ?> Existe n formas de fazer um formulário, veja esta que postei, é simples e funciona ;) , eu utilizo ele, se não pegar assim mesmo pode converse com seu host e veja se eles arrumam o SMTP, eu aconselho que utilize o UOL Host :) Fica com Deus, um grande abraço Compartilhar este post Link para o post Compartilhar em outros sites
Fillipi 0 Denunciar post Postado Abril 20, 2010 cwbdesign, acabei de testar o seu método, aparentemente funciona, mas não chega o e-mail da mesma forma. Veja a pagina teste aqui http://vilana.com.br/enviar.html vou entrar em contato com o servidor mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
mortean 0 Denunciar post Postado Setembro 11, 2011 Só pra constar, se alguem, como eu, estiver procurando um formulário que fufa, este é o caminho, testei a dica do cwbdesign que funcionou beleza, o que pega é que para o formulario ser enviado você tem que ter um site e quem hospeda seu site tem que ter este serviço, no campo em que envia o email pra você o email tem que ser do seu site tipo: meu site é o: wwww.meusite.net.br meu email é meunome@meusite.net.br, se seu provedor hospedeiro autorizar ok, testei com provedores de hospedagem gratis como o hdfree e não funciona, no hospadagratis que tenho meu site vai que é uma beleza, portanto o formulario do cwbdesign funciona só tem que ter um site e ter autorização pra este serviço. Bom é isso Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 11, 2011 No Linux, você pode definir o From das seguintes formas: $headers .= "From: eu@seudominio.com\n"; $headers .= "From: Meu Nome <eu@seudominio.com>\n"; No Windows: $headers .= "From: eu@seudominio.com\r\n"; Tente desta forma: <?php $subject = 'Assunto'; $from = 'fulano@gmail.com'; $to = 'ciclano@hotmail.com'; $bcc = null; // Esconder endereços de e-mails. $cc = null; // Qualquer destinatário pode ver os endereços de e-mail especificados nos campos To e Cc. $message = 'Corpo da mensagem'; $headers = sprintf( 'Date: %s%s', date( "D, d M Y H:i:s O" ), PHP_EOL ); $headers .= sprintf( 'Return-Path: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'To: %s%s', $to, PHP_EOL ); $headers .= sprintf( 'Cc: %s%s', $cc, PHP_EOL ); $headers .= sprintf( 'Bcc: %s%s', $bcc, PHP_EOL ); $headers .= sprintf( 'From: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Reply-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Message-ID: <%s@%s>%s', md5( uniqid( rand( ), true ) ), $_SERVER[ 'HTTP_HOST' ], PHP_EOL ); $headers .= sprintf( 'X-Priority: %d%s', 3, PHP_EOL ); $headers .= sprintf( 'X-Mailer: PHP/%s%s', phpversion( ), PHP_EOL ); $headers .= sprintf( 'Disposition-Notification-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'MIME-Version: 1.0%s', PHP_EOL ); $headers .= sprintf( 'Content-Transfer-Encoding: 8bit%s', PHP_EOL ); $headers .= sprintf( 'Content-Type: text/html; charset="iso-8859-1"%s', PHP_EOL ); mail( null, $subject, $message, $headers ); ?> Verifique se todas as variáveis que você utilizar estão com os valores corretos. Compartilhar este post Link para o post Compartilhar em outros sites
bruna.w 0 Denunciar post Postado Setembro 30, 2011 oi carlos,obrigada pala postagem. mas tenho uma dúvida,eu quero pegar o valor do formulario por que os e-mails são variados (nunca vai ser umnico)der uma olha no meu script. valeu bjs. No Linux, você pode definir o From das seguintes formas: $headers .= "From: eu@seudominio.com\n"; $headers .= "From: Meu Nome <eu@seudominio.com>\n"; No Windows: $headers .= "From: eu@seudominio.com\r\n"; Tente desta forma: <?php $subject = 'Assunto'; $from = 'fulano@gmail.com'; $to = 'ciclano@hotmail.com'; $bcc = null; // Esconder endereços de e-mails. $cc = null; // Qualquer destinatário pode ver os endereços de e-mail especificados nos campos To e Cc. $message = 'Corpo da mensagem'; $headers = sprintf( 'Date: %s%s', date( "D, d M Y H:i:s O" ), PHP_EOL ); $headers .= sprintf( 'Return-Path: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'To: %s%s', $to, PHP_EOL ); $headers .= sprintf( 'Cc: %s%s', $cc, PHP_EOL ); $headers .= sprintf( 'Bcc: %s%s', $bcc, PHP_EOL ); $headers .= sprintf( 'From: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Reply-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Message-ID: <%s@%s>%s', md5( uniqid( rand( ), true ) ), $_SERVER[ 'HTTP_HOST' ], PHP_EOL ); $headers .= sprintf( 'X-Priority: %d%s', 3, PHP_EOL ); $headers .= sprintf( 'X-Mailer: PHP/%s%s', phpversion( ), PHP_EOL ); $headers .= sprintf( 'Disposition-Notification-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'MIME-Version: 1.0%s', PHP_EOL ); $headers .= sprintf( 'Content-Transfer-Encoding: 8bit%s', PHP_EOL ); $headers .= sprintf( 'Content-Type: text/html; charset="iso-8859-1"%s', PHP_EOL ); mail( null, $subject, $message, $headers ); ?> Verifique se todas as variáveis que você utilizar estão com os valores corretos. Compartilhar este post Link para o post Compartilhar em outros sites
PaUlO... 0 Denunciar post Postado Outubro 3, 2011 @bruna.w basta colocar no lugar do seu Email do assunto e tudo mais, uma variável correspondente ao campo do formulário por o método $_POST... Exemplo: Formulario: <table> <form action="envia.php" method="post"> <tr> <td>Remetente:</td> <td><input type="text" name="remetente" /></td> </tr> <tr> <td>Destino:</td> <td><input type="text" name="destino" /></td> </tr> <tr> <td>Assunto:</td> <td><input type="text" name="assunto" /></td> </tr> <tr> <td>Menssagem:</td> <td><textarea name="mensagem" rows="10" cols="50"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="button" id="submitm1" value="Enviar"></td> </tr> <tr> <td></td> <td> </td> </tr> </form> </table> Envia.php <?php $subject = $_POST['assunto']; $from = $_POST['remetente']; $to = $_POST['destino']; $message = $_POST['mensagem']; $bcc = null; // Esconder endereços de e-mails. $cc = null; // Qualquer destinatário pode ver os endereços de e-mail especificados nos campos To e Cc. $headers = sprintf( 'Date: %s%s', date( "D, d M Y H:i:s O" ), PHP_EOL ); $headers .= sprintf( 'Return-Path: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'To: %s%s', $to, PHP_EOL ); $headers .= sprintf( 'Cc: %s%s', $cc, PHP_EOL ); $headers .= sprintf( 'Bcc: %s%s', $bcc, PHP_EOL ); $headers .= sprintf( 'From: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Reply-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Message-ID: <%s@%s>%s', md5( uniqid( rand( ), true ) ), $_SERVER[ 'HTTP_HOST' ], PHP_EOL ); $headers .= sprintf( 'X-Priority: %d%s', 3, PHP_EOL ); $headers .= sprintf( 'X-Mailer: PHP/%s%s', phpversion( ), PHP_EOL ); $headers .= sprintf( 'Disposition-Notification-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'MIME-Version: 1.0%s', PHP_EOL ); $headers .= sprintf( 'Content-Transfer-Encoding: 8bit%s', PHP_EOL ); $headers .= sprintf( 'Content-Type: text/html; charset="iso-8859-1"%s', PHP_EOL ); mail( null, $subject, $message, $headers ); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Outubro 3, 2011 Basta informar os dados vindos do formulário via $_POST <?php $subject = $_POST[ 'assunto' ]; $from = $_POST[ 'remetente' ]; $to = $_POST[ 'destino' ]; $message = $_POST[ 'mensagem' ]; :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites