Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Enviar E-mail Com Imagem No Corpo Da Mensagem


Marina_DC

Pergunta

Oi pessoal, estou começando em PHP, sempre usei mais o ASP e estou tendo um pouco de dificuldade em desenvolver um newsletter em PHP.

Preciso saber como enviar uma imagem junto com o corpo do e-mail, sem estar em anexo, colocando o comando em html

<img src="http://endereco.com.br/imagem.gif">
Já descobri que pela função ()mail tem como habilitar o envio em formato html colocando nos parâmetros headers os comandos
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "Content-type: image/gif";

Nesse caso, dentro do campo textarea poderia inserir o código html juntamente com o endereço da imagem já hospedada no servidor e enviar que chegaria no e-mail.

Ele envia todas as configurações do html, mas no local onde deveria ficar a imagem aparece apenas o símbolo de imagem quebrada.

Não sei mais o que poderia fazer para resolver este problema. Pequisei aqui no fórum, e até mesmo em outros fóruns, mas as soluções apresentadas são sempre as mesmas, usar esses comandos acima para enviar a imagem.

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Oi pessoal, estou começando em PHP, sempre usei mais o ASP e estou tendo um pouco de dificuldade em desenvolver um newsletter em PHP.

Preciso saber como enviar uma imagem junto com o corpo do e-mail, sem estar em anexo, colocando o comando em html

<img src="http://endereco.com.br/imagem.gif">
Já descobri que pela função ()mail tem como habilitar o envio em formato html colocando nos parâmetros headers os comandos
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "Content-type: image/gif";

Nesse caso, dentro do campo textarea poderia inserir o código html juntamente com o endereço da imagem já hospedada no servidor e enviar que chegaria no e-mail.

Ele envia todas as configurações do html, mas no local onde deveria ficar a imagem aparece apenas o símbolo de imagem quebrada.

Não sei mais o que poderia fazer para resolver este problema. Pequisei aqui no fórum, e até mesmo em outros fóruns, mas as soluções apresentadas são sempre as mesmas, usar esses comandos acima para enviar a imagem.

Alguém pode me ajudar?

tenta tirar $header .= "Content-type: image/gif"; e deixar só o html/text

no header...

Link para o comentário
Compartilhar em outros sites

  • 0

Já tentei isso também Eric e continua a mesma coisa, a imagem aparece quebrada. Estou começando a achar que o problema está no servidor onde hospedam a imagem, porque no código está tudo ok. Ou então seja problema com o webmail, eu testei apenas no Hotmail e Yahoo, no IG o e-mail nem mesmo chega, nos demais, chega, mas com a imagem quebrada.

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, vou colocar o código de um formulário de contato que também criei e tem o mesmo problema

<?
//Recebendo os dados do formulário
$nome    = $_POST["txtNome"];
$email    = $_POST["txtEmail"];
$assunto = $_POST["txtAssunto"];
$mensagem = htmlentities($_POST["txtMensagem"]);


$contato = "seuemail@hotmail.com"; // e-mail para onde a mensagem será enviada

// Início configuração da mensagem

global $email; 

$data = date("d/m/y"); 
$hora = date("H:i"); 

$body = "<b>Data:</b> $data | <b>Hora:</b> $hora<br>";
$body .= "<b>Assunto:</b> $assunto<br>";
$body .= "$mensagem\r\n";
$headers  = "From: $nome <$email>\r\n";
$headers .= "Reply-To: $nome <$email>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

//Envio da mensagem
    if(@mail($contato,$assunto,$body,$headers)){
echo "&lt;script>alert('Email enviado com sucesso. Obrigado')</script>";
echo "&lt;script>location.href='contato.html'</script>";

    }
// Mensagem de erro
    else{
echo "&lt;script>alert('A mensagem não pôde ser enviada, tente novamente')</script>";
echo "&lt;script>location.href='contato.html'</script>";

    }
?>
Procurando no código fonte do e-mail quando recebido, verifiquei que o PHP não estava reconhecendo os caracteres especiais, e em uma busca pela net descobri o htmlentities que na teoria era pra fazer a conversão, só que agora recebo o e-mail assim:
Data: 14/09/07 | Hora: 13:15 
Assunto: Teste 
 <html> <head> </head> <body> <font color=\"#FF0000\" face=\"Courier New, Courier, mono\">Teste</font> <br> <img src=\"http://www.buddytv.com/articles/supernatural-born-under-a-bad-sign-00.jpg\"> </body> </html>

E antes da tag <html> aparece um quadrinho cinza como se fosse o simbolo de imagem quebrada.

Vou continuar na procura por uma solução, mas se alguém aqui puder me ajudar.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
você poderia postar como resolveu?

amigo fiz algo bem simples baseado em um post que li

toda imagem que voce adicionar ao corpo da mensagem, coloca o caminho do browser....tipo http://www.seusite.com.br/pics/figura.jpg...

abçs

agora se alguém souber uma adptação do codigo não entrar como spam, me envia please..... :rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...