Ir para conteúdo

POWERED BY:

Arquivado

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

birib

[Resolvido] Email PHP

Recommended Posts

Boa noite galera do Imasters!

 

Estou tendo um problema com o formulário de contato de um site que estou desenvolvendo. O E-mail chega certinho na caixa de destino, porém nas palavras com acentuação os caracteres mudam. Vejam um exemplo abaixo:

Mensagem do site

nome: Gabriel Ribeiro

tel:

email:

empresa: STWRS

cidade: Monte Mor

estado: SP

servicos: Licenciamento Ambiental

mensagem: Por conseguinte, o início da atividade geral de formação de atitudes não pode mais se dissociar dos modos de operação convencionais

 

Meu código PHP:

<?php

/*digite os destinatarios separados por virgula*/
$destinatarios = 'contato@meudominio.com.br';
/*usuario ou nome completo da conta criada em sua hospedagem, como por exemplo teste@seudominio*/
$usuario = 'contato@meudominio.com.br';
/*senha da conta de email acima*/
$senha = 'xxxxx';
/*nome do destinatario no qual receberá a mensagem*/
$nomeDestinatario = 'xx';

$nomeRemetente = $_POST['nome'];
$telefone = $_POST['tel'];
$resposta = $_POST['email'];
$empresa = $_POST['empresa'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$servico = $_POST['servicos'];
$_POST['mensagem'] = nl2br($_POST['mensagem']);


foreach ($_POST as $dados['me1'] => $dados['me2'])

{

$dados['me3'][] = '<b>'.$dados['me1'].'</b>: '.$dados['me2'];

}

$dados['me3'] = '<hr><h2>Mensagem do site</h2>'.implode('<br>', $dados['me3']).'<hr>';

$dados['email'] = array('usuario' => $usuario, 'senha' => $senha, 'servidor' => 'smtp.'.substr(strstr($usuario, '@'), 1), 'nomeRemetente' => $nomeRemetente, 'nomeDestinatario' => $nomeDestinatario, 'resposta' => $resposta, 'assunto' => $assunto, 'mensagem' => $dados['me3']);

ini_set('php_flag mail_filter', 0);

$conexao = fsockopen($dados['email']['servidor'], 587, $errno, $errstr, 10);
fgets($conexao, 512);

$dados['destinatarios'] = explode(',', $destinatarios);

foreach ($dados['destinatarios'] as $dados['1'])

{

$dados['destinatarios']['RCPTTO'][] = '< '.$dados['1'].' >';
$dados['destinatarios']['TO'][] = $dados['1'];

}

$dados['cabecalho'] = array('EHLO ' => $dados['email']['servidor'], 'AUTH LOGIN', base64_encode($dados['email']['usuario']), base64_encode($dados['email']['senha']), 'MAIL FROM: ' => '< '.$dados['email']['usuario'].' >', 'RCPT TO:' => $dados['destinatarios']['RCPTTO'], 'DATA', 'MIME-Version: ' => '1.0', 'Content-Type: text/html; charset=iso-8859-1', 'Date: ' => date('r',time()), 'From: ' => array($dados['email']['nomeRemetente'].' ' => '< '.$dados['email']['usuario'].' >'), 'To:' => array($dados['email']['nomeDestinatario'].' ' => $dados['destinatarios']['TO']), 'Reply-To: ' => $dados['email']['resposta'],'Subject: ' => $dados['email']['assunto'], 'mensagem' => $dados['email']['mensagem'], 'QUIT');

foreach ($dados['cabecalho'] as $dados['2'] => $dados['3'])

{

if (is_array($dados['3']))

{

foreach ($dados['3'] as $dados['4'] => $dados['5'])

{

$dados['4'] = empty($dados['4']) ? '' : $dados['4'];
$dados['5'] = empty($dados['5']) ? '' : $dados['5'];

$dados['4'] = is_numeric($dados['4']) ? '' : $dados['4'];

if (is_array($dados['5']))

{

$dados['5'] = "< ".implode(', ', $dados['5'])." >";

}

fwrite($conexao, $dados['2'].$dados['4'].$dados['5']."\r\n", 512).'<br>';
fgets($conexao, 512);

}

}

else

{

$dados['2'] = empty($dados['2']) ? '' : $dados['2'];
$dados['3'] = empty($dados['3']) ? '' : $dados['3'];

$dados['2'] = is_numeric($dados['2']) ? '' : $dados['2'];

if ($dados['2'] == 'Subject: ')

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';
fwrite($conexao, "\r\n", 512).'<br>';
fgets($conexao, 512);

}

elseif ($dados['2'] == 'mensagem')

{

fwrite($conexao, $dados['3']."\r\n.\r\n").'<br>';
fgets($conexao);

}

else

{

fwrite($conexao, $dados['2'].$dados['3']."\r\n", 512).'<br>';
fgets($conexao, 512);

}

}

}

fclose($conexao);

//}

?>

 

Quem puder me ajudar, dar uma dica ou qualquer sugestão eu agradeço.

 

Um grande abraço!

 

:blush:

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar utft8_encode(); no corpo da mensagem ou configure o charset na hora de enviar o email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido! Muito Obrigado shini :clap:

Ainda vou aprender tudo sobre esse tal de php :rolleyes:

 

Mudei a seguinte linha:

'Content-Type: text/html; charset=iso-8859-1'

para

'Content-Type: text/html; charset=utf-8'

e agora chega tudo certinho.

 

 

Um grande abraço!

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.