Ir para conteúdo

Arquivado

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

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?

 

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.