Exemplo de envio de email em formato HTML usando Delphi e Indy 9:
1 var
2 Email: TIdMessage;
3 Texto: TIdText;
4 Html: TIdText;
5 Anexo: TIdAttachment;
6 begin
7 Email := TIdMessage.Create(nil);
8 try
9 // ...ajusta remetente, destinatário, etc...
10
11 // define o tipo do conteúdo da mensagem
12 Email.ContentType := 'multipart/mixed';
13
14 // cria a parte texto - pode estar em branco
15 Texto := TIdText.Create(Email.MessageParts);
16 Texto.Body.Text :=
17 'This message contains HTML and images.';
18 Texto.ContentType := 'text/plain';
19
20 // cria a parte HTML
21 Html := TIdText.Create(Email.MessageParts);
22 Html.Body.Text := '<html><body>'
23 + 'Mensagem de <b>Teste</b><br />'
24 + '<img src="cid:imagem.jpg" />'
25 + '</body></html>';
26 Html.ContentType := 'text/html';
27
28 // inclui no email a imagem usada na parte HTML
29 Anexo := TIdAttachment.Create(
30 Email.MessageParts, 'c:\pasta\imagem.jpg');
31 Anexo.ContentType := 'image/jpg';
32 Anexo.Headers.Add('Content-ID: <imagem.jpg>');
33
34 // ... envia o email...
35 finally
36 Email.Free;
37 end;
38 end;
Pontos importantes:
- A parte em formato text/plain deve estar presente embora não precise conter texto. Existe um bug no Indy que, na ausência dessa parte, faz com que o email seja gerado vazio.
- Para ter imagens embutidas no email, inclua o header Content-ID e use na tag img o modificador cid: ao especificar a origem da imagem.
Massuda tu é pau!!!
ResponderExcluirApós 3 dias quebrando a cabeça usei partes deste post para o indy 10 com delphi 2007 e ficou show, se alguem precisar é só fazer contato.
ResponderExcluirExcelente... Parabéns pela iniciativa.
ResponderExcluir