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

Gonçalo_ssb

Imagem no corpo do email

12 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O teus headers estão mal. Tem que ser um por linha para serem parsados correctamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa? um por linha como assim?

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora