jruiz 0 Denunciar post Postado Março 9, 2005 :huh: Olá, Srs.Estou tentando criar um serviço onde pessoas de uma associação enviam email para o grupo. Criei um formulário básico, com entrada para assunto e mensagem e envio isso pelo php mail, usando um while.O processo, de maneira geral, funciona.O problema é que a mensagem recebida por email perde completamenta a formatação. Os parágrafos deixam de existir.Você sabe como fazer com que a mensagem chegue formatada ao destinatário (pelo menos os parágrafos)? Compartilhar este post Link para o post Compartilhar em outros sites
_b l k_ 0 Denunciar post Postado Março 9, 2005 Tenta adicionar isso no headers... PHP [/tr][tr]$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
jruiz 0 Denunciar post Postado Março 9, 2005 Não deu.Para um texto simples assim:"Testando essa função com algo mais leve.Aqui temos um parágrafo, será que dá?Aqui temos outro e a palavra aluvião."O sistema desaparece com os parágrafos e envia por email a seguinte mensagem:"Testando essa função com algo mais leve. Aqui temos um parágrafo, será que dá? Aqui temos outro e a palavra aluvião." Compartilhar este post Link para o post Compartilhar em outros sites
joaogil 1 Denunciar post Postado Março 10, 2005 Primeiro, se você está digitando a mensagem num <TEXTAREA> você deverá pegar o resultado desse campo quando enviar o formulário e usar a função nl2br() assim: PHP [/tr][tr]$mensagem = $_POST["mensagem"]; $mensagem_com_quebra_de_linha = nl2br($mensagem); [/tr] Essa função transfoma as novas linhas em tags <BR>. Outra coisa mais importante é colocar um cabeçalho text/html no e-mail assim: PHP [/tr][tr]$cabecalho = "From: $email_remetente\r\nReplayTo: $email_email_remetente\r\nContent-Type: text/html"; [/tr] Cuide com a variável $email_remetente que está no meio da string que deve ser o endereço de email de quem está mandando a mensagem (é obvio). Compartilhar este post Link para o post Compartilhar em outros sites
jruiz 0 Denunciar post Postado Março 10, 2005 ôpa!! Bateu na trave. Tá faltando algum detalhe para dar certo. O que eu tenho é o seguinte: $header = "From: $email_env\r\nReplayTo: $email_reply\r\nContent-Type: text/html"; $header.= "X-Mailer: PHP4 Script Language\n"; $header.= "X-Accept-Language: en\n"; $header.= "MIME-Version: 1.0\n"; $header.= "Content-Transfer-Encoding: 7bit\n";E no final : mail($email, $assunto, $msg, $header);A mensagem está chegando com o código html, tipo assim:<STYLE><!--A:HOVER {color:#000099;}>{ } A {text-decoration: none;}A:HOVER {text-decoration: underline;}--></STYLE> <body link='#006699' vlink='#006699' alink='#006699' topmargin='0' leftmargin='0'><table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'> <tr> <td> <p align='center'><font face='<? echo Arial Narrow; ?>' size='2'><b>Mensagem de Corretor Associado à RCA</b></font></td> </tr> <tr> <td> </td> </tr> <tr> <td><font face='echo Arial Narrow' size='2'>Mensagem enviada por: José Ruiz Talhari Júnior</font></td> etc... Compartilhar este post Link para o post Compartilhar em outros sites
joaogil 1 Denunciar post Postado Março 10, 2005 Bom, primeiro não está faltando as tags <HTML></HTML> no corpo do seu e-mail ? E onde você está colocando a variável $msg no corpo do e-mail ? Com essas dicas que lhe foram passadas deve dar certo... Compartilhar este post Link para o post Compartilhar em outros sites
jruiz 0 Denunciar post Postado Março 10, 2005 Eu coloquei as TAG <html>, veja: $mensagem = $_POST["mensagem"];$mensagem = nl2br($mensagem);$email_env = $email;$email_reply = $email;while ($linha = mysql_fetch_array($resultado)) { $email = $linha['email']; $header = "From: $email_env\r\nReplayTo: $email_reply\r\nContent-Type: text/html"; $header.= "X-Mailer: PHP4 Script Language\n"; $header.= "X-Accept-Language: en\n"; $header.= "MIME-Version: 1.0\n"; $header.= "Content-Transfer-Encoding: 7bit\n"; $msg = "<html><body>"; $msg.= "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'> <tr> <td> <p align='center'><font face='<? echo $fonte; ?>' size='2'><b>Mensagem de Corretor Associado à RCA</b></font></td> </tr> <tr> <td> </td> </tr> <tr> <td><font face='echo $fonte' size='2'>Mensagem enviada por: $nome</font></td> </tr> <tr> <td><font face='$fonte' size='2'>Assunto: $assunto</font></td> </tr> <tr> <td><font face='$fonte>' size='2'>Mensagem:</font></td> </tr> <tr> <td height='5'></td> </tr> <tr> <td><font face='$fonte' size='2'>$message</font></td> </tr> <tr> <td> </td> </tr> <tr> <td> <p align='center'><font face='<? echo $fonte; ?>' size='2'>Rede de Corretores Autônomos do Ceará</font></td> </tr></table>"; $msg.= "</body></html>"; mail($email, $assunto, $msg, $header);} :( Eu não sei aonde estou errando... Compartilhar este post Link para o post Compartilhar em outros sites
jruiz 0 Denunciar post Postado Março 10, 2005 Um detalhe que eu notei é que essa linha:$header.= "Content-Type: text/html; charset=us-ascii\n";produz um email limpo, com a estrutura da tabela legal, mas some com os parágrafos de $message.Porém, colocado dessa forma:$header.= "Content-Type: text/html";O resultado é um email com os códigos html, mas ficam mantidos os parágrafos de $message.Preciso de um meio-termo entre os dois: o email contendo a tabela, normalmente, e a $message com seus devidos parágrafos. Compartilhar este post Link para o post Compartilhar em outros sites
jruiz 0 Denunciar post Postado Março 13, 2005 Srs: Eu resolvi meu problema da seguinte maneira (com a preciosa ajuda deste fórum, claro):...$message= nl2br($_POST ['message']);... $header = "From: \"".$autor."\" <".$email_env.">\n"; $header.= "Reply-to: \"".$autor."\" <".$email_env.">\n"; $header.= "Content-Type: text/html; charset=iso-8859-1"; mail($email, $assunto, $message, $header);Ou seja, tirei a variável $message da estrutura de uma tabela. Agora ela vai direto na função mail. Tá funcionando. Compartilhar este post Link para o post Compartilhar em outros sites