Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Gonçalo_ssb

Imagem no corpo do email

Recommended Posts

Gonçalo_ssb

Ola muito bom dia,

Mais uma vez venho aqui colocar uma dúvida na qual não estou a conseguir obter resposta a partir das minhas pesquisas. A minha dúvida consiste em colocar uma imagem no corpo do email que envio via função mail().

O meu código é o seguinte:


$texto = "Caro(a): $nome_contacto <br /><br /> $mensagem <br /><br /> Cumprimentos,<br />Fascínio health Club.<br />";

mail($email_contacto,$assunto, $texto,"From: Fascínio Health Club <geral@fascinio.net>" . "MIME-Version: 1.0\n" . "Content-type: text/html; charset=iso-8859-1");

Antes deste código é feito um upload de uma imagem para o meu servidor.

A minha variável de $mensagem é composta por código HTML e fica com o seguinte aspecto:

$mensagem = "$texto_news <br /><img src='http://www.fascinio.net/admin/$imagem' />";

O problema é que a minha imagem não está a aparecer no corpo do meu email.

Share this post


Link to post
Share on other sites
yoda

Boas,

Para aparecer sempre a imagem no mail, tens de a embeber. A maneira mais fácil de fazer isso é usares a class phpmailer (se nao estou em erro no nome) que te facilita nesse ponto. O que ela faz é codificar a imagem como texto e assim seguir sempre nos emails, sem ser preciso ir carregá-la ao servidor.

Share this post


Link to post
Share on other sites
elcsat

tu ao enviar uma imagem por email, ela vai ser enviada em formato bin, e a imagem deve ser adicionada ao cabeçalho da mensagem. em codigo eu nao sei como fazer isso nunca precisei.

mas ver se isto te ajuda

http://pt.php.net/mail

Share this post


Link to post
Share on other sites
pedrotuga

Epa... que grande confusão que praqui vai.

Rapaz, a única coisa que tens que fazer é enviar um email em HTML. Não só o conteudo do email deve ser html, tambem o header apropriado deve estar definido com o mime type adequando (text/html se não me engano).

A imagem podes envia-la em anexo (não aconselhado) ou simplesmente fazer como tu disseste e subi-la par ao teu servidor.

Está tudo no manual:

http://se.php.net/function.mail

inclusive um exemplo de um email em html.

Share this post


Link to post
Share on other sites
Gonçalo_ssb

Caro PedroTuga, pois a minha dúvida principal reside na forma correcta de desenvolvimento, pois há pessoas que dizem uma coisas e há outras que dizem outra. Como podes ver no código do tópico inicial, eu já estou a fazer o que dizes ou seja, apenas incluir código HTMl com uma referencia para a minha imagem e também um header. Contudo nao está a funcionar, vou verificar melhor a tua referencia.

Share this post


Link to post
Share on other sites
Gonçalo_ssb

Desculpa? um por linha como assim?

Eu estou a passar os headers efectuando uma concatenação...que eu saiba é assim

Share this post


Link to post
Share on other sites
djthyrax

Nem precisas de ir ao \r\n, falta-te a mudança de linha do From para o MIME-Version. :D

Verifica também se o URL no src da <img> é o correcto.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
pedrotuga

Na especificação de facto só diz que tem que ser um header por linha. Um \n é gajo para chegar.

O \r\n sempre foi das coisas que me fez muita confusão. Se alguem tiver um link ou quiser explicar aqui a história dos newlines.

Qual é que é o newline 'unix-style'. O UNIX usava um código diferente do ascii? Como dá conta o ascii desses caracteres assim que encontra um?

Share this post


Link to post
Share on other sites
djthyrax

Na especificação de facto só diz que tem que ser um header por linha. Um \n é gajo para chegar.

O \r\n sempre foi das coisas que me fez muita confusão. Se alguem tiver um link ou quiser explicar aqui a história dos newlines.

Qual é que é o newline 'unix-style'. O UNIX usava um código diferente do ascii? Como dá conta o ascii desses caracteres assim que encontra um?

Originalmente, os macs usavam o caracter \r (cariage return -> significava "voltar para o inicio da linha" como nas maquinas de escrever), e o Unix usava o \n (line feed -> mudar para a linha seguinte) e o Windows usava os 2 caracteres \r\n (criage return + line feed = voltar para o inicio da linha de baixo). É tudo uma questão de semântica. Por causa de compatibilidades, os macs passaram a usar o \n do unix e o windows continuou a usar os 2 caracteres juntos.

Acho que já tinha disto isto algures.

http://en.wikipedia.org/wiki/Carriage_return

http://en.wikipedia.org/wiki/Newline


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.