Fórum Visualizar email com imagem enviado com INDY #331533
19/10/2006
0
Rjun
Curtir tópico
+ 0Posts
19/10/2006
Massuda
Quem controla a exibição é quem recebeu o email.
Quando uma mensagem com imagens é recebida, no topo aparece um aviso...
Gostei + 0
19/10/2006
Rjun
O problema é que não aparece essa mensagem. Aparece somente os anexos, como se a imagem tivesse sido enviada como um anexo comum.
Gostei + 0
19/10/2006
Massuda
... Html := TIdText.Create(Email.MessageParts); Html.Body.Text := ´<html><body>´ + ´<img src="cid:imagem.jpg" >´ + ´</body></html>´; Html.ContentType := ´text/html´; Imagem := TIdAttachment.Create(Email.MessageParts, ´c:\pasta\imagem.jpg´); Imagem.ContentType := ´image/jpg´; Imagem.Headers.Add(´Content-ID: <imagem.jpg>´); ...
Gostei + 0
19/10/2006
Rjun
procedure AttachImage; var newText: TIdText; newAttach: TIdAttachment; begin if (EmailContent.BodyIsHtml) then Exit; EmailContent.BodyText := StringReplace(EmailContent.BodyText, ´#1310´, ´<br>´, [rfReplaceAll]); // Converte o texto em um HTML newText := TIdText.Create(IndyMessage.MessageParts); newText.ContentType := ´text/html´; newText.Body.Add(´<html><body>´); newText.Body.Add(EmailContent.BodyText); newText.Body.Add(´<br><br>´); newText.Body.Add(´<img src="cid:´ + ExtractFileName(EmailContent.AttachmentImage) + ´">´); newText.Body.Add(´</body></html>´); newText := TIdText.Create(IndyMessage.MessageParts); newText.ContentType := ´text/html´; // Anexa a imagem ao corpo do email newAttach := TIdAttachment.Create(IndyMessage.MessageParts, EmailContent.AttachmentImage); newAttach.ContentType := ´image/jpg´; newAttach.ExtraHeaders.Values[´Content-ID´] := ´<´ + ExtractFileName(EmailContent.AttachmentImage) + ´>´; end;
Aparentemente está igual a sua sugestão. Mesmo assim não consigo comque o email seja exibido corretamente no gmail e no hotmail.
Gostei + 0
19/10/2006
Massuda
... EmailContent.BodyText := .... newText := TIdText.Create(IndyMessage.MessageParts); newText.Body.Text := ´´; newText.ContentType := ´text/plain´; // Converte o texto em um HTML ...
Gostei + 0
19/10/2006
Rjun
Gostei + 0
19/10/2006
Massuda
var Email: TIdMessage; Texto: TIdText; Html: TIdText; Anexo: TIdAttachment; begin Email := TIdMessage.Create(nil); try ...ajusta remetente, destinatário, etc... Email.ContentType := ´multipart/mixed´; Texto := TIdText.Create(Email.MessageParts); Texto.Body.Text := ´This message contains HTML and images.´; Texto.ContentType := ´text/plain´; Html := TIdText.Create(Email.MessageParts); Html.Body.Text := ´<html><body>´ + ´Mensagem de <b>Teste</b><br>´ + ´<img src="cid:imagem.jpg" >´ + ´</body></html>´; Html.ContentType := ´text/html´; Anexo := TIdAttachment.Create(Email.MessageParts, ´c:\pasta\imagem.jpg´); Anexo.ContentType := ´image/jpg´; Anexo.Headers.Add(´Content-ID: <imagem.jpg>´); ... envia o email... finally Email.Free; end; end;
No GMail, a mensagem exibe o aviso que existem imagens não exibidas, como citei anteriormente.
Gostei + 0
19/10/2006
Rjun
Gostei + 0
19/10/2006
Massuda
Na pasta com os .pas do Indy, a versão está no arquivo IdVers.inc.
Verifiquei meu Indy e vi que estou usando a versão 9.0.0.50(!), que é uma versão ´snapshot´ do CVS deles. Se você tiver interesse, pode baixar [url=http://indy.fulgan.com/ZIP/]desta página[/url].
Gostei + 0
19/10/2006
Massuda
Gostei + 0
19/10/2006
Rjun
Um dia inteiro, mas consegui. Obrigado pela força. Realmente tive que atualizar a versão para 9.0.0.18. E essa parte do código foi extremamente necessária.
Texto := TIdText.Create(Email.MessageParts); Texto.Body.Text := ´This message contains HTML and images.´; Texto.ContentType := ´text/plain´
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)