Formulário de contato usando a função mail()

Olá pessoal,

Fiz um formulário de contato para os usuários do meu site entrarem em contato comigo, porem quando o formulário é enviado para meu e-mail os campos (nome, email, telefone e mensagem) estão sendo exibidos na mesma linha como no exemplo abaixo:

Nome: xxxxxxxxxx - e-mail: xxxxxxxxxx - Telefone: xxxxxxxxxx - mensagem: xxxxxxxxxx

Como insiro um BR no código abaixo para cada informação (nome, email, telefone e mensagem) ficar um em baixo do outro quando aberto no meu e-mail. Pois estou me batendo com as aspas.

    $corpoEmail = "Nome: " .$nome. " - " 
                 ."E-mail: " .$email. " - "
                 ."Telefone: " .$telefone. " - "
                 ."Mensagem: " .$msg;

Como faço também para evitar erros de acentuação nos textos dos campos (nome e mensagem), pois quando digito algo com acento aparece erro no texto.

Para ficar mais organizado e também dar os pulos de linha, faça assim:

$corpoEmail = "Nome:  $nome\n";
$corpoEmail .= "E-mail:  $email\n";
$corpoEmail .= "Telefone:  $telefone\n\n";
$corpoEmail .= "Mensagem:  $msg\n";

Olá @Kwmif_Vivinho

Funcionou a quebra de linha. Obrigado pela ajuda!

Como faço também para evitar erros de acentuação nos textos dos campos (nome e mensagem), pois quando digito algo com acento aparece erro no texto.

public function enviarEmail() {

    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $telefone = $_POST['telefone'];
    $msg = $_POST['mensagem'];


     $corpoEmail = "Nome:  $nome\n";
     $corpoEmail .= "E-mail:  $email\n";
     $corpoEmail .= "Telefone:  $telefone\n\n";
     $corpoEmail .= "Mensagem:  $msg\n";

    $email_remetente = "contato@meuemail.com"; 
    $assunto = '=?UTF-8?B?'.base64_encode("Contato").'?=';
    $headers = "MIME-Version: 1.1\n"; 
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n"; 
    $headers .= "From: $email_remetente\n"; // remetente 
    $headers .= "Return-Path: $email_remetente\n"; // return-path 
    $headers .= "Reply-To: $email\n"; // Endereço que usuário informou no contato
	$envio = mail("contato@meuemail.com", "$assunto", "$corpoEmail", "$headers", "-f$email_remetente");

    $this->view('inc/callback_msg');
}
1 curtida

Boa tarde,
Normalmente eu uso o utf8_encode ou o utf8_decode somente. Não entendi porque usou assim ‘=?UTF-8?B?’.

$teste1 = utf8_encode($assunto);

Se não funcionar, tente assim:

$teste2 = utf8_decode($assunto);

Funcionou!

Obrigado @Kwmif_Vivinho

1 curtida

Disponha. Que bom que conseguiu.