Baia Posted June 2, 2013 at 06:46 PM Report #510576 Posted June 2, 2013 at 06:46 PM Alguem que me ajude aqui PF que já perdi a tarde e não saí do sitio 😞 o senário é o seguinte: pego um conteúdo em html da base de dados e passo por variável para o corpo do email, o problema é que ao abrir o email o html da variável não aparece renderizado, mostra-me as tags html. p.ex. $corpo_email='<html><head></head><body>'.$tabela_html.'</body></html>'; //$tabela_html é o html que vem da bd Quando recebo o email o conteúdo da variável $tabela_html não é renderizado. MAS PORQUÊ ?? 8( 😞 alguém me pode ajudar
legd1991 Posted June 2, 2013 at 07:03 PM Report #510577 Posted June 2, 2013 at 07:03 PM Posta mais código e mostra também como aparece no email
Baia Posted June 2, 2013 at 07:14 PM Author Report #510579 Posted June 2, 2013 at 07:14 PM 😕 Falso problema!! 5 minutos de ar puro resolveram a questão. na bd o html é guardado com htmlspecialchars() e eu ao ler e a construir o corpo do email estava a converter a desconverter e a fazer se lá mais o quê, e não estava a fazer corretamente. agora voltei de cabeça limpa e resolvi o problema 😁 obrigado na mesma 👍
taviroquai Posted June 2, 2013 at 11:43 PM Report #510597 Posted June 2, 2013 at 11:43 PM (edited) De qualquer forma, em vez de concatenares strings, podes usar um template, capturar o output e colocar no corpo do email... algo assim: <?php $linhas = array(); ob_start(); include 'template.php'; $corpo_email = ob_get_clean(); onde o template.php pode ser algo como... <html> <head></head> <body> <table> <?php foreach ($linhas as $linha) { ?> <tr><td><?=$linha['atributo']?></td></tr> <? } ?> </table> </body> </html> Edited June 2, 2013 at 11:43 PM by taviroquai
Dannyps Posted June 5, 2013 at 06:45 AM Report #511077 Posted June 5, 2013 at 06:45 AM (edited) Nesse caso, substituir ' por " e deveria resultar. Edited June 5, 2013 at 06:47 AM by Dannyps
Baia Posted June 5, 2013 at 08:24 AM Author Report #511084 Posted June 5, 2013 at 08:24 AM De qualquer forma, em vez de concatenares strings, podes usar um template, capturar o output e colocar no corpo do email... algo assim: Eu não estou a concatenar strings, o que vem da BD é que é o meu template. No corpo do email só coloco o template dentro do body html
brunoais Posted June 5, 2013 at 09:15 AM Report #511094 Posted June 5, 2013 at 09:15 AM Isso quer dizer que só existe HTML e CSS inline (se sequer existir) e nada mais? Acho que é melhor reveres o que é um template e acho que devias de esquecer o usar tabelas para formatação. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Baia Posted June 5, 2013 at 09:21 AM Author Report #511099 Posted June 5, 2013 at 09:21 AM A tabela foi um exemplo, o que existe é apenas negritos títulos e parágrafos(texto formatado)
brunoais Posted June 5, 2013 at 10:05 AM Report #511102 Posted June 5, 2013 at 10:05 AM Falta-te enviares os headers a indicar que o e-mail vai em text/html (MIME type) "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Baia Posted June 5, 2013 at 10:12 AM Author Report #511104 Posted June 5, 2013 at 10:12 AM (edited) sim também coloquei isso. $corpo='<html><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head> <body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">'.$mensagem.'</body></html>'; Edited June 5, 2013 at 10:12 AM by Baia
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now