Wagner C. 1 Denunciar post Postado Junho 26, 2013 A situação é a seguinte tenho dois clientes diferentes X e Y. o site do cliente X já esta hospedado no UOLHOST e tudo funciona perfeitamente bem. Porém hoje hospedei o site do cliente Y mas o formulário de contato não envia o e-mail. Testando esse mesmo do cliente Y na outra hospedagem consigo usar o formulário de contato perfeitamente. Abaixo envio o código para avaliação. <?php if($_POST['nome'] == "" || $_POST['mail'] == "" || $_POST['telefone'] == "" || $_POST['mensagem'] == "") { header("location:contato.php?erro=null"); }else { $mensagem = "Nome: ".$_POST['nome']."\n"; $mensagem .= "Email: ".$_POST['mail']."\n"; $mensagem .= "Telefone: ".$_POST['telefone']."\n"; $mensagem .= "Assunto: ".$_POST['assunto']."\n"; $mensagem .= "Mensagem: ".$_POST['mensagem']; $headers = "MIME-Version: 1.1\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: informacao@aqui coloquei meu dominio.com.br\r\n"; // remetente $headers .= "Return-Path: informacao@aqui coloquei meu dominio.com.br\r\n"; // return-path $envio = mail("informacao@aqui coloquei meu dominio.com.br", $_POST['nome']." - ".$_POST['assunto'], $mensagem, $headers); if($envio) { echo "<script>alert('Mensagem enviada com sucesso!')</script>"; echo "<script>location.href=('contato.php');</script>"; }else echo "<script>alert('Mensagem não pôde ser enviada!')</script>"; echo "<script>location.href=('contato.php?erro=null');</script>"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Junho 26, 2013 Testando esse mesmo do cliente Y na outra hospedagem consigo usar o formulário de contato perfeitamente. pode ser versões diferentes do php ou configurações. coloque essas 2 linhas no inicio da pagina: ini_set('display_errors', 1); error_reporting(E_ALL); aparece alguma mensagem de erro? Compartilhar este post Link para o post Compartilhar em outros sites
Wagner C. 1 Denunciar post Postado Junho 26, 2013 Não aparece nenhum erro. Tudo executa da mesma forma Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Junho 26, 2013 Pode ser erro nas quebras de linha e retorno de carro dos "headers". Para garantir que funcione em qualquer ambiente (Linux ou Windows) use a constante PHP_EOL do PHP em vez de "\r\n". Outro detalhe, você está quebrando linha na última linha do cabeçalho, na última linha não deve ser quebrada. Tente desta forma: $headers = 'MIME-Version: 1.1' . PHP_EOL; $headers .= 'Content-type: text/plain; charset=iso-8859-1' . PHP_EOL; $headers .= 'From: informacao@aqui coloquei meu dominio.com.br' . PHP_EOL; $headers .= 'Return-Path: informacao@aqui coloquei meu dominio.com.br'; Compartilhar este post Link para o post Compartilhar em outros sites
Wagner C. 1 Denunciar post Postado Junho 26, 2013 Leozitho corrigi o que foi sugerido, mas ainda não recebo a mensagem no e-mail. O formulário sempre que é enviado posta a mensagem "Mensagem enviada com sucesso!" O problema é só porque usando meu domínio adquirido para esta página que vou usar, meus formulários não enviam o e-mail. Tenho também outra conta no Uolhost e hospedei esses mesmo arquivos lá, e lá funciona. Pode ser como o Shini disse diferentes versôes do php ou configurações diferentes. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Junho 26, 2013 teste o envio como phpmailer http://phpmailer.worxware.com/ Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Junho 26, 2013 Aparentemente não tem mais nenhum erro em seu código, e se a função mail está retornando TRUE é porque o PHP está conseguindo enviar a mensagem, o problema deve estar no seu host. A maioria das empresas de hospedagem obrigam usar o mesmo domínio da hospedagem no "Return-Path" como forma de evitar SPAM. O e-mail que você está colocando no "Return-Path" tem o mesmo domínio da hospedagem? Você já considerou enviar o e-mail usando o protocolo SMTP? Existem bibliotecas prontas para isso, uma das mais conhecidas é o PHPMailer. Compartilhar este post Link para o post Compartilhar em outros sites
Heitor Sousa 9 Denunciar post Postado Junho 26, 2013 Se o código do Y funcionou no X pode ser problema não servidor não é? Compartilhar este post Link para o post Compartilhar em outros sites
Wagner C. 1 Denunciar post Postado Junho 26, 2013 Boa noite. Vejam bem testei mais um formulário de contato... <?php include_once('phpmailer.php'); //Chama o arquivo phpmailer.php com as funções para realizar o envio. //######################################### // Recebe as informações do formulário //######################################### $nome = $_POST['nome']; $email = $_POST['email']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; //######################################### // Dados da conta de e-mail que fará o envio //######################################### $smtp = new Smtp("smtp.meu dominio.com.br"); //Endereço do SMTP, geralmente localhost. $smtp->user = "informacao@meu dominio.com.br"; //Conta de email $smtp->pass = "minha senha"; //Senha da Conta de e-mail. $smtp->debug = false; //Somente para usuários avançados que desejam o log do envio para testes. //######################################### // Envio do formulário //######################################### $to = "informacao@meu dominio.com.br"; //Informe aqui o e-mail que deve receber a mensagem do formulário. $from = $email; $subject = "Contato - " . $assunto; $msg = $mensagem; if (isset($_POST['submit'])) { if($nome && $email && $assunto && $mensagem) { if($smtp->Send($to, $from, $subject, $msg)){ echo "<script>alert('Contato enviado!');</script>"; echo "<script>window.location = 'index.php';</script>"; //Altere aqui para o endereço de sua página. exit; } } else { echo "<script>alert('Preencha todos os campos!');</script>"; echo "<script>window.location = 'formulario.html';</script>"; //Altere aqui para o endereço de seu formulário exit; } } ?> <?php class Smtp{ var $conn; var $user; var $pass; var $debug = false; function Smtp($host){ $this->conn = fsockopen($host, 25, $errno, $errstr, 30); $this->Put("EHLO $host"); } function Auth(){ $this->Put("AUTH LOGIN"); $this->Put(base64_encode($this->user)); $this->Put(base64_encode($this->pass)); } function Send($to, $from, $subject, $msg){ $this->Auth(); $this->Put("MAIL FROM: " . $from); $this->Put("RCPT TO: " . $to); $this->Put("DATA"); $this->Put($this->toHeader($to, $from, $subject)); $this->Put("\r\n"); $this->Put($msg); $this->Put("."); $this->Close(); if(isset($this->conn)){ return true; }else{ return false; } } function Put($value){ return fputs($this->conn, $value . "\r\n"); } function toHeader($to, $from, $subject){ $header = "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($from) ."> \r\n"; $header .= "From: <" . $from . "> \r\n"; $header .= "To: <".$to."> \r\n"; $header .= "Subject: ".$subject." \r\n"; $header .= "Date: ". date('D, d M Y H:i:s O') ." \r\n"; $header .= "X-MSMail-Priority: High \r\n"; return $header; } function Close(){ $this->Put("QUIT"); if($this->debug == true){ while (!feof ($this->conn)) { echo fgets($this->conn) . "<br>\n"; } } return fclose($this->conn); } } ?> Porém mais uma vez a mensagem não é enviada. Desta vez ocorre um erro. PHP Warning: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to smtp.meu dominio.com.br:25 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Junho 27, 2013 A porta de SMTP usada aqui no Brasil não é mais a 25 e sim a 587. Compartilhar este post Link para o post Compartilhar em outros sites
brunopessoa 0 Denunciar post Postado Abril 2, 2014 estou com o mesmo problema... hostinguer nao envia Compartilhar este post Link para o post Compartilhar em outros sites
shopdasmidias 0 Denunciar post Postado Agosto 5, 2014 POR FAVOR, ALGUEM PODE ME AJUDAR? ESTE CODIGO ESTA DANDO ERRO ABAIXO A página que você tentou acessar não existe ou foi movida. Suas causas provávéis podem ser: Você clicou em um link desatualizado em outro site Você digitou uma URL inválida ABAIXO CODICO <br /><p class="ErrorMessage" style="display: %%GLOBAL_HideFormError%%">%%LNG_BadContactFormCaptcha%%</p><form action="%%GLOBAL_ShopPath%%/paginas.php?action=sendContactForm" method="post" id="ContactForm" class="PL20"><input type="hidden" name="pagina_id" id="pagina_id" value="%%GLOBAL_PaginaId%%" /><div class="FormContainer HorizontalFormContainer"><dl><dt style="display: %%GLOBAL_HideFullName%%"> %%LNG_ContactName%%:</dt><dd style="display: %%GLOBAL_HideFullName%%"><input type="text" name="contact_fullname" id="contact_fullname" class="Textbox Field200" value="%%GLOBAL_ContactName%%" /></dd><dt><span class="Required">*</span> %%LNG_ContactEmail%%:</dt><dd><input type="text" name="contact_email" id="contact_email" class="Textbox Field200" value="%%GLOBAL_ContactEmail%%" /></dd><dt style="display: %%GLOBAL_HideCompanyName%%"> %%LNG_ContactCompanyName%%:</dt><dd style="display: %%GLOBAL_HideCompanyName%%"><input type="text" name="contact_companyname" id="contact_companyname" class="Textbox Field200" value="%%GLOBAL_ContactCompanyName%%" /></dd><dt style="display: %%GLOBAL_HidePhone%%"> %%LNG_ContactPhone%%:</dt><dd style="display: %%GLOBAL_HidePhone%%"><input type="text" name="contact_phone" id="contact_phone" class="Textbox Field200" value="%%GLOBAL_ContactPhone%%" /></dd><dt style="display: %%GLOBAL_HideOrderNo%%"> %%LNG_ContactOrderNo%%:</dt><dd style="display: %%GLOBAL_HideOrderNo%%"><input type="text" name="contact_orderno" id="contact_orderno" class="Textbox Field200" value="%%GLOBAL_ContactOrderNo%%" /></dd><dt style="display: %%GLOBAL_HideRMANo%%"> %%LNG_ContactRMANo%%:</dt><dd style="display: %%GLOBAL_HideRMANo%%"><input type="text" name="contact_rma" id="contact_rma" class="Textbox Field200" value="%%GLOBAL_ContactRMA%%" /></dd><dt><span class="Required">*</span> %%LNG_ContactQuestion%%:</dt><dd><textarea name="contact_question" id="contact_question" class="Field300" rows="5" cols="50">%%GLOBAL_ContactQuestion%%</textarea><div id="SearchResults"></div></dd><dt style="display: %%GLOBAL_HideCaptcha%%"><span class="Required">*</span> %%LNG_CaptchaVerification%%:</dt><dd style="display: %%GLOBAL_HideCaptcha%%"><p class="Warning">%%LNG_CaptchaIntro%%</p>%%GLOBAL_CaptchaImage%%<br /><input style="margin-top:5px; width:105px" type="text" name="captcha" id="captcha" class="Textbox" /></dd></dl><p class="Submit"><input type="submit" value="%%LNG_SendForm%%" class="ContactButton" /></p></div></form>%%Panel.ContactFormJavaScript%%%%GLOBAL_ARSPanel%% Compartilhar este post Link para o post Compartilhar em outros sites
Pedro Roccon 9 Denunciar post Postado Agosto 5, 2014 Uma dica que eu dou é você padronizar seus e-mails utilizando o PHPMailer. Eu tinha esses mesmos problemas com e-mail, depois que comecei a utilizar o PHPMailer, simplesmente acabaram minhas dores de cabeça: http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer/ Artigo excelente do autor Thiago Belem. Através dele você aprende a configurar o PHPMailer. Compartilhar este post Link para o post Compartilhar em outros sites