Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera tenho um formulario de email, que está enviando normal porém caso a pessoa digitar acentos no e-mail que recebo aparece assim:
ENVIADO POR:
Nome: nome aguÃnea
Telefone: 767676 7676
Email: fulano@hotmail.com
Assunto: construção no assunto
Mensagem: uma descrição com acento no assunto
ENVIADO EM: 18/07/2014
Segue meu codigo:
<?php
$date = date("d/m/Y");
$mail -> charSet = "UTF-8";
// **** ATENÇÃO ******
// ABAIXO ESTÁ A CONFIGURAÇÃO DO SEU FORMULÁRIO.
// **** ATENÇÃO ******
// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$nome = $_POST['nome'];
$telefone = $_POST['tel'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$mensagem = $_POST['mensagem'];
//CABEÇALHO - CONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="Aguínea Consultoria Web";
$email_para_onde_vai_a_mensagem = "fulano@fulano.com.br";
$nome_de_quem_recebe_a_mensagem = "Aguínea Consultoria Web";
$exibir_apos_enviar='enviado.html';
//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $nome <$email>\n";
$assunto_da_mensagem_original="Contato no Site";
$assunto = "Contato Aguínea Consultoria Web";
// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)
// ****** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÁVEL ABAIXO ***********
$configuracao_da_mensagem_original="
ENVIADO POR:\n
Nome: $nome\n
Telefone: $telefone\n
Email: $email\n
Assunto: $subject\n
Mensagem: $mensagem\n
ENVIADO EM: $date
";
//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Confirmação";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";
// **** IMPORTANTE ******
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// **** IMPORTANTE ******
//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="s";
//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";
if($assunto_digitado_pelo_usuario=="n"){
$assunto = "$assunto_da_mensagem_original";
}
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);
//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if($assunto_digitado_pelo_usuario=="n"){
$assunto = "$assunto_da_mensagem_de_resposta";$assunto = "Re: $assunto";
}
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);
echo "<script>window.location='$exibir_apos_enviar'</script>";
?>>
Experimenta o seguinte:
$nome = utf8_encode($_POST['nome']);
$telefone = utf8_encode($_POST['tel']);
$email = utf8_encode($_POST['email']);
$subject = utf8_encode($_POST['subject']);
$mensagem = utf8_encode($_POST['mensagem']);
Tentei aqui Marlon porem o erro continua.
Verifica se os arquivos php estão salvos como utf-8 e ainda, se o navegador está reconhecendo como uft-8 a página do formulário.
Verifica se os arquivos php estão salvos como utf-8 e ainda, se o navegador está reconhecendo como uft-8 a página do formulário.
Marlon a pagina reconhece sim, como eu faço para Ver se os arquivos php estão salvos como utf-8 ?
tenta assim:
function _enviarEmail ($emailremetente, $emaildestinatario, $assunto, $mensagem){
$emailsender = $emailremetente;
/ Montando o cabeçalho da mensagem /
$headers = "MIME-Version: 1.1\n";
$headers .= "Content-type: text/html; charset=utf-8\n";$headers .= "From: ".$emailsender."\n";
$headers .= "Return-Path: " . $emailsender."\n";/ Enviando a mensagem /
mail($emaildestinatario, $assunto, $mensagem, $headers, "-r". $emailsender);
}
_enviarEmail('seuemail@gmail.com', 'emaildestinatario@gmail.com', 'assunto', 'mensagem em html');>
tenta assim:
function _enviarEmail ($emailremetente, $emaildestinatario, $assunto, $mensagem){
$emailsender = $emailremetente;
/ Montando o cabeçalho da mensagem /
$headers = "MIME-Version: 1.1\n";
$headers .= "Content-type: text/html; charset=utf-8\n";$headers .= "From: ".$emailsender."\n";
$headers .= "Return-Path: " . $emailsender."\n";/ Enviando a mensagem /
mail($emaildestinatario, $assunto, $mensagem, $headers, "-r". $emailsender);
}
_enviarEmail('seuemail@gmail.com', 'emaildestinatario@gmail.com', 'assunto', 'mensagem em html');
Victor não deu certo
Se tu tiver o Notepad++ na máquina, abre um dos arquivos e vai no menu formatar. É uma maneira.
Se tu estiver usando o Netbeans (que aliás eu recomendo), verifica nas propriedades do projeto.
Olá! Tente assim ao receber as variáveis via POST:
<?php
$nome = utf8_decode($_POST['nome']);
$telefone = $_POST['tel'];
$email = $_POST['email'];
$subject = utf8_decode($_POST['subject']);
$mensagem = utf8_decode($_POST['mensagem']);
...
?>
Tente usar utf8_decode() ou utf8_encode().
Espero ter Ajudado ;)
Olá! Se não der certo assim tente algo como:
<?php
header ('Content-type: text/html; charset=UTF-8');
?>
Ou na sua página onde tem o formulário do preenchimento do Nome..(etc), coloque dentro da tag <head>:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Espero ter Ajudado ;)
Experimenta o seguinte: