Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário envia caracteres estranhos para o e-mail


PAmaral

Pergunta

Pessoal, não foi falta de pesquisar... Já tentei de tudo, mas quando o visitante envia uma mensagem para o webmail recebo a mensagem totalmente desconfigurada. Mandei exibir o cabeçalho completo e este formulárionão está enviando a codificação utf-8 como em outros e-mail que são enviados e exibidos corretamente e em seu cabeçalho completo consigo localizar a codificação recebida. O webmail é de um site hospedado no UolHost. Segue abaixo como é exibida a mensagem:

Mensagem: Formul??rio apresentando caracteres desconfigurados no webmail do uolhost.

A????o

Integra????o

??nica

Segue abaixo meu arquivo enviar.php

<? header('Content-Type: text/html; charset=utf-8\r\n');

$erro = '';
if(empty($_POST['nome'])) $erro .= '- nome<br/>';
if(empty($_POST['email'])) $erro .= '- email<br/>';
if(empty($_POST['assunto'])) $erro .= '- assunto<br/>';
if(empty($_POST['mensagem'])) $erro .= '- mensagem<br/>';

$nome      = $_POST["nome"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];
$exibir_apos_enviar = 'sucesso.php';

global $email;

$data      = date("d/m/y");
$ip        = $_SERVER['REMOTE_ADDR'];
$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora      = date("H:i");

if (empty($erro))
{   
mail ("meuemail@servidor.com", 
      "$assunto",
      "Nome: $nome\nE-mail: $email\nIp: $ip\nNavegador: $navegador\nData: $data\nHora: $hora\nMensagem: $mensagem",
      "From: $email"
     );

$site   = "site.com.br";
$titulo = "Seu e-mail foi recebido com sucesso!";
$msg    = "$nome, agradecemos seu contato. Em breve retornaremos sua mensagem!";
$exibir_apos_enviar = 'sucesso.php';


mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
header("location:$exibir_apos_enviar");

}
else
{    
     header("location:erro.php");
}

?>

Valeu pessoal!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Olha, vou aproveitar que tu ta fazendo uma pergunta e vou fazer a minha tmb pra ti :P

Como que tu ta usando a funcao mail?? Tu tem um servidor de email instalado ai? Tu já conseguiu usar essa funcao com um servidor publico tipo: yahoo ou gmail?

Eu atualmente uso a classe PHPMailer, porque nunca consegui fazer funcionar a funcao mail :S

Agradeco a ajuda...

E sobre os caracteres, tu tem que enviar eles com a funcao que o Romerito endicou e la no servidor, recebe-las com o utf8_decode().

T+

Editado por Danilo Moraes
Link para o comentário
Compartilhar em outros sites

  • 0

Grande Danilo,

Entaum, não conheço muito de linguagens de programação, na verdade minha área é design de interação, AI e usabilidade. Mas pelo que eu sei, o servidor PHP tem que estar com esta função habilitada, no caso só utilizei no UolHost e no Hostnet e ambos funcionaram perfeitamente.

Quanto ao envio para servidores públicos, já consegui sim, apontei para o GMail e Hotmail e ambos receberam perfeitamente.

Abraços,

Patrick Amaral

Olha, vou aproveitar que tu ta fazendo uma pergunta e vou fazer a minha tmb pra ti :P

Como que tu ta usando a funcao mail?? Tu tem um servidor de email instalado ai? Tu já conseguiu usar essa funcao com um servidor publico tipo: yahoo ou gmail?

Eu atualmente uso a classe PHPMailer, porque nunca consegui fazer funcionar a funcao mail :S

Agradeco a ajuda...

E sobre os caracteres, tu tem que enviar eles com a funcao que o Romerito endicou e la no servidor, recebe-las com o utf8_decode().

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Aowwwww Romerito! Entaum, tentei aqui, mudou os caracteres mas continua dando erro... Olha o exemplo abaixo:

Mensagem: A????????o2 (Ação2)

Assunto: Ação2 (Ação2)

Vlw!

i aew PAmaral, tenta colocar assim:

$nome      = utf8_encode( $_POST["nome"] );
$email     = utf8_encode( $_POST["email"] );
$assunto   = utf8_encode( $_POST["assunto"] );
$mensagem  = utf8_encode( $_POST["mensagem"] );

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei estou falando besteira, mas na função mail você não indica servidor de SMTP. Tipo:

mail("destinatario@algum-email.com", "Assunto", "Texto", $headers);

O que quis dizer sobre usar servidores publicos, não e no sentido de enviar para eles e sim usar o servidor de envio (smtp) deles pra enviar emails... Qual servidor de email pra envio tu usa?

Link para o comentário
Compartilhar em outros sites

  • 0

Grande Romerito,

Ao invés de utf8_encode( $_POST["nome"] ); coloquei utf8_decode( $_POST["nome"] );

Ai deu certo! Mas valeu, pois se não fosse você estava f*****!!!

Abraços!

i aew PAmaral, tenta colocar assim:

$nome      = utf8_encode( $_POST["nome"] );
$email     = utf8_encode( $_POST["email"] );
$assunto   = utf8_encode( $_POST["assunto"] );
$mensagem  = utf8_encode( $_POST["mensagem"] );

Editado por PAmaral
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...