Jump to content
Sign in to follow this  
mauricio lanner

Problemas de caracteres no envio de email

Recommended Posts

Boa tarde galera, estou com um problema em um formulário de envio de email que ta me dando uma puta 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?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.