Boa tarde galera, estou com um problema em um formulário de envio de email que ta me dando uma #@?$%~ dor de cabeça. Na verdade antes da atualização para o php 5.6.1 estava tudo funcionando normal, até que o cliente entrou em contato comigo dizendo que o email estava chegando com caracteres estranhos.
esse é o codigo original do formulario
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Aquaload contato</title> <style> body { font-family:"Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", Verdana, sans-serif; color:#666; } </style> </head> <body> <?php zrequire_once('recaptchalib.php'); $privatekey = "6LfpifESAAAAAFH8i2-FXX6K3wzjTzO5hBOlgkez"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { #nao validou die ("<script>alert('Codigo recaptcha incorreto');history.back(1);</script>"); } else { #validacao ok siga com seu codigo } if(!isset($_POST[Submit])) die("Não recebi nenhum par&acitc;metro. Por favor volte ao formulario.html antes"); /* Medida preventiva para evitar que outros domínios sejam remetente da sua mensagem. */ if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) { $emailsender='aquaload@aquaload.com.br'; } else { $emailsender = "webmaster@" . $_SERVER[HTTP_HOST]; // Na linha acima estamos forçando que o remetente seja 'webmaster@seudominio', // você pode alterar para que o remetente seja, por exemplo, 'contato@seudominio'. } // Passando os dados obtidos pelo formulário para as variáveis abaixo $nomeremetente = $_POST['nomeremetente']; $emailremetente = trim($_POST['emailremetente']); $emaildestinatario = 'aquaload@aquaload.com.br'; $comcopia = trim($_POST['comcopia']); $comcopiaoculta = trim($_POST['comcopiaoculta']); $telefone = $_POST['telefone']; $ddd = $_POST['ddd']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; $ip = $_SERVER['REMOTE_ADDR']; //email obrigatorio if($emailremetente=="") { echo"<script type='text/javascript'> alert(\"Email Obrigatorio!.\"); window.setTimeout(function(){history.go(-1)}); </script> "; exit; } //tel obrigatoria if($telefone=="") { echo"<script type='text/javascript'> alert(\"Telefone Obrigatorio!.\"); window.setTimeout(function(){history.go(-1)}); </script> "; exit; } //nome obrigatoria if($nomeremetente=="") { echo"<script type='text/javascript'> alert(\"Seu nome é brigatorio!.\"); window.setTimeout(function(){history.go(-1)}); </script> "; exit; } //ddd obrigatoria if($ddd=="") { echo"<script type='text/javascript'> alert(\"Seu DDD é brigatorio!.\"); window.setTimeout(function(){history.go(-1)}); </script> "; exit; } /* Montando a mensagem a ser enviada no corpo do e-mail. */ $mensagemHTML = 'Esse é um email enviado automaticamente pelo site Aqua Load! Nome do Remetente: '.$nomeremetente.' Email do remetente: '.$emailremetente.' Telefone do remetente: ('.$ddd.')'.$telefone.' Mensagem: '.$mensagem.' Ip do remetente: '.$ip.''; /* Montando o cabeçalho da mensagem */ $headers = "MIME-Version: 1.1".$quebra_linha; $headers .= "Content-Type: text/html; charset=utf-8".$quebra_linha; // Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada. $headers .= "From: ".$emailsender.$quebra_linha; $headers .= "Return-Path: " . $emailsender . $quebra_linha; // Esses dois "if's" abaixo são porque o Postfix obriga que se um cabeçalho for especificado, deverá haver um valor. // Se não houver um valor, o item não deverá ser especificado. if(strlen($comcopia) > 0) $headers .= "Cc: ".$comcopia.$quebra_linha; if(strlen($comcopiaoculta) > 0) $headers .= "Bcc: ".$comcopiaoculta.$quebra_linha; $headers .= "Reply-To: ".$emailremetente.$quebra_linha; // Note que o e-mail do remetente será usado no campo Reply-To (Responder Para) /* Enviando a mensagem */ mail($emaildestinatario, $assunto, $mensagemHTML, $headers, "-r". $emailsender); /* Mostrando na tela as informações enviadas por e-mail */ echo"<table width='100%' border='0' cellpadding='0' cellspacing='10'> <tr> <td align='center'><img src='ok.png' width='130' height='130' /></td> </tr> <tr> <td align='center'>Mensagem <b>$assunto</b> enviada com sucesso pelo ip $ip e foi gravado para sua segurança.<br> <br> <p><a href='".$_SERVER['HTTP_REFERER']."'>Clique aqui para enviar outra mensagem</a></p></td> </tr> </table> " ?> </body> </html>
Ja tentei acrecentar
header("Content-Type: text/html; charset=ISO-8859-1");
header('Content-Type: text/html; charset=UTF-8');
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
de todas as forma possiveis e disponiveis no google que consegui, mas nada deu certo, o email continua chegando com erros de caracteres dessa forma
Esse é um email enviado automaticamente pelo site Aqua Load! Nome do Remetente: mauricio lanner de freitas Email do remetente: mauriciolanner@gmail.com Telefone do remetente: (7191207940)7191207940 Mensagem: açaà com açúcar não Ip do remetente: 201.50.13.74
Alguem sabe uma maneira de ajustar isso?