Ir para conteúdo

POWERED BY:

Arquivado

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

Wilherme

Acentos em emails

Recommended Posts

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";
}else{
$assunto = "Re: $assunto";
}
 
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);
echo "<script>window.location='$exibir_apos_enviar'</script>";
 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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";
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$emailsender."\n";
$headers .= "Return-Path: " . $emailsender."\n";
// 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.
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)


/* Enviando a mensagem */
mail($emaildestinatario, $assunto, $mensagem, $headers, "-r". $emailsender);


}
_enviarEmail('seuemail@gmail.com', 'emaildestinatario@gmail.com', 'assunto', 'mensagem em html');

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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";
// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: ".$emailsender."\n";
$headers .= "Return-Path: " . $emailsender."\n";
// 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.
// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)


/* 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ;)

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.