quinhosp 0 Denunciar post Postado Agosto 24, 2011 Boa noite! Eu tenho um form de cadastro pra receber novidades, com nome email, quando eu preencho os campos sem colocar acento tudo funciona corretamente. O problema é que quando eu coloco acento no campo nome, ex: Márcio, o email não chega ao destino. Alguém pode me ajudar? Então, eu testei não funciona deste jeito. Quando eu tiro $cabecalho .= "Content-type: text/plain; charset=utf-8\r\n"; o email chega ao destino daquela foma, ou seja, quando eu não coloco acento na string "nome = Márcio" ela vai, porém quando coloco o acento o email não chega. Com o código adicionado, nenhuma forma de email chega. Aqui vão os códigos form <div class="chamada-novidades"> <h2 class="fonte">Novidades</h2> <p>Recebas as novidades no seu email. Praticidade que você merece. Cadastre-se!</p> <form name="form-newsletters" method="post" action="envia-form2.php"> <ul> <li> <label>Nome:</label> <input type="text" id="FN_nome" name="nome" class="campo validar" title="Nome{tipo:'obrigatorio'}" /> </li> <li> <label>E-mail:</label> <input type="text" id="FC_email" name="email" class="campo validar" title="E-mail{tipo:'email',min:1}" /> </li> <li> <input type="reset" value="Limpar" class="reset" title="Limpar campos do formulário" /> <input type="submit" title="Cadastrar" value="Cadastrar" class="mais" /> </li> </ul> </form> </div> envia-form2.php <?php $nome = $_POST["nome"]; $email = $_POST["email"]; $msg .= "QUERO RECEBER NOVIDADES - BUFFET\n\n"; $msg .= "Nome:\t$nome\n\n"; $msg .= "Email:\t$email\n\n"; $cabecalho = "From: $nome";#Titulo da mensagem mail("buffet@gmail.com.br", "Quero Receber Novidades", $msg, $cabecalho); echo "<script>window.location.href='index.php'</script>"; ?> aqui segue o codigo de validação do form caso obrigatorio // Obrigatorio case "obrigatório": case "obrigatorio": if(validar.valor.replace(/[\s\.,()_-]/g,"").length == 0){ validar.valido = false; validar.msg = "deve ser preenchido!"; } break;// Obrigatorio case "obrigatório": case "obrigatorio": if(validar.valor.replace(/[\s\.,()_-]/g,"").length == 0){ validar.valido = false; validar.msg = "deve ser preenchido!"; } break; Compartilhar este post Link para o post Compartilhar em outros sites
marcus_du 1 Denunciar post Postado Agosto 24, 2011 Tente utilizar utf8_encode pode funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
quinhosp 0 Denunciar post Postado Agosto 24, 2011 Tente utilizar utf8_encode pode funcionar. mas eu ja tente ai $cabecalho .= "Content-type: text/plain; [b]charset=utf-8[/b]\r\n"; só que ai que nehum email chega ao su destino, nem os que estão sem acento. Compartilhar este post Link para o post Compartilhar em outros sites
luciano antony 0 Denunciar post Postado Agosto 24, 2011 Posta seu codigo todo. Se não tenta utf8_encode($variavel). Compartilhar este post Link para o post Compartilhar em outros sites
quinhosp 0 Denunciar post Postado Agosto 24, 2011 Posta seu codigo todo. Se não tenta utf8_encode($variavel). Luciano o código ta posta acima no primeiro post Compartilhar este post Link para o post Compartilhar em outros sites
quinhosp 0 Denunciar post Postado Agosto 25, 2011 Bom dia! Eu percebi que a header não aceita string com acento, mas no corpo da mensagem vai tudo acentuado normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 27, 2011 um meio é converter os caracteres especiais do header para base64 function foo( $label, $charset = 'utf-8' ){ return '=?' . $charset . '?B?' . base64_encode( $label ) . '?='; } //echo foo( 'acentuação' ); //exemplo: $fromName = 'josé'; $fromMail = 'jose@foo.bar'; $header = 'From: ' . foo( $fromName ) . '<' . $fromEmail . '>'; $header .= PHP_EOL . 'Content-type: text/plain; charset=utf-8'; obs: é apenas uma dica, não a solução definitiva.. Compartilhar este post Link para o post Compartilhar em outros sites