Fórum Email #316198

15/03/2006

0

Montei um folder em html agora preciso enviar por email, porem no corpo do email e nao como anexo, estou enviando via indy com delphi 7.
Abs


Felipeiw

Felipeiw

Responder

Posts

15/03/2006

Massuda

[url=http://forum.clubedelphi.net/viewtopic.php?t=71932]Este tópico[/url] resolve seu problema?


Responder

Gostei + 0

16/03/2006

Felipeiw

Caro Massuda, neste artigo que vc me passou na epoca eu consegui enviar o email com um arquivo jpg, agora eu preciso enviar um arquivo com extensao html, esse arquivo é montado pelo delphi de acordo com algumas condições escolhidas pelo usuario, nesse html existe alem de textos fotos tb, resumindo eu gostaria de envial no corpo do email esse html, da maneira que ele é visto quando aberto.
Abs


Responder

Gostei + 0

16/03/2006

Massuda

Talvez eu não tenha entendido seu problema, mas me parece que basta você seguir o item 3.4 do artigo, tomando cuidado de ajustar as tags <img src=...> do seu HTML com os Content-ID de cada anexo que contem a imagem a ser exibida no HTML.


Responder

Gostei + 0

16/03/2006

Felipeiw

Obrigado Massuda, pela atencao.

Ou sou eu que nao estou conseguindo entender sua explicacao, meu caso é o seguinte, tenho que gerar mala direta de aniversario, por exemplo, o pessoal de vendas montam um folder de promocao em jpg, seleciona os aniversariantes, e eu montei um modelo html com um cabeçalho padrao um local para colocar o nome do cliente, um local para o folder em jpg, um local para o rodape, ai conforme o delphi vai passando pelos clientes vou montando esse arquivo html, como segue abaixo, ai eu gostaria de colocar esse arquivo html gerado no corpo do email, eu imaginei que eu poderia passar o endereco de arquivo como faço quando é jpg ( lTextPart.Body.Text := ´<html><body><img src=´c:\email.jpg´ ></body></html>´; ). Nao sei se consegui explicar.

  Writeln(Arquivo,´<body>´);
  Writeln(Arquivo,´<div align="center">´);
  Writeln(Arquivo,´<p><img name="topo" src="c:\cabecalho.jpg" width="570" height="120" alt=""> </p>´);
  Writeln(Arquivo,´<table width="570" border="0" cellspacing="0" cellpadding="0">´);
  Writeln(Arquivo,´<tr>´);


No final eu tenho o arquivo html gerado de acordo com um modelo criado no dreamweaver, simplesmente fui gravando linha a linha os codigos html gerados.

Abs
[/code]


Responder

Gostei + 0

16/03/2006

Massuda

Pegando o exemplo do gringo, na parte 3.4 do artigo dele...
var
  lMessage: TIdMessage;
  lTextPart: TIdText;
  lImagePart: TIdAttachment;
begin
  // ... some code here to initialize your SMTP server.
  // It could be done somewhere as well
  lMessage := TIdMessage.Create(Self);
  lMessage.From.Address := ´myemail@mydomain.com´;
  lMessage.Subject := ´My test email´;
  lMessage.Recipients.Add.Address := ´someoneemail@somedomain.com´;
  lMessage.Body.Clear;

  lTextPart := TIdText.Create(lMessage.MessageParts);
  // costuma-se por aqui uma versão texto (não-HTML) do 
  // texto HTML que você pretende enviar
  lTextPart.Body.Text := ´This is a plain text message´;
  lTextPart.ContentType := ´text/plain´;

  lTextPart := TIdText.Create(lMessage.MessageParts);
  // aqui vai o seu HTML
  lTextPart.Body.Text := ´<html><body>´ +
    ´<b>This is a HTML message with picture</b>´ +
    // troque seus c:\suaimagem.jpg por um nome "simbólico"
    ´<img src="htmlbodyIMG0000.JPG" >´ +
    ´</body></html>´;
  lTextPart.ContentType := ´text/html´;

  lImagePart := TIdAttachment.Create(lMessage.MessageParts,
    // aqui vai o nome de arquivo de sua imagem...
    ´c:\suaimagem..JPG´);
  lImagePart.ContentType := ´image/jpg´;
  // ...e isso associa sua imagem com o símbolo que usou no HTML
  lImagePart.Headers.Add(´Content-ID: <htmlbodyIMG0000.JPG>´);
  // ... A code to send a message
end;



Responder

Gostei + 0

16/03/2006

Felipeiw

Caro Massuda, ainda nao consegui, a linha lMessage.Body.Text := ´<html><body>This is a HTML message</body></html>´; nessa propriedade como faço para criar varias linhas dessas ai poderei ir criando todo o codigo html dessa forma por exemplo:

      lTextPart.Body.Text := ´<html><body><b>This is a HTML message</b></body></html>´+#1310+
                             ´<html><body><b>This is a segundo linha HTML message</b></body></html>´;
//                           ´<html><body><b>This is a quarto  linha HTML message</b></body></html>´+13;
//                           ´<html><body><b>This is a quinto  linha HTML message</b></body></html>´+13;
//                           ´<html><body><b>This is a sexto   linha HTML message</b></body></html>´;


Porem nao consigo fazer a quebra de linha, mesmo com #13+10, seria possivel isso?


Responder

Gostei + 0

16/03/2006

Massuda

Porem nao consigo fazer a quebra de linha, mesmo com #13+10, seria possivel isso?
Quebra de linha em HTML não é 1310, pode ser <br> ou <p>...</p>. Por exemplo, usando <br>...
lTextPart.Body.Text := ´<html><body>´ +
  ´<b>This is a HTML message</b><br>´+
  ´<b>This is a segundo linha HTML message</b><br>´ +
  ´<b>Outra linha HTML</b>´ +
  ´</body></html>´;
...além disso, você só pode ter um par <html>...</html> e um para <body>...</body>; esse tipo de coisa é o básico de HTML, dê uma olhada em alguma apostila de HTML.


Responder

Gostei + 0

16/03/2006

Felipeiw

Massuda, mt obrigado pela paciencia e atencao, consegui o que eu queria fazendo o seguinte:

      lTextPart := TIdText.Create(idMsgSend.MessageParts);
      lTextPart.Body.LoadFromFile(´c:\aniversario.html´);
      lTextPart.ContentType := ´text/html´;


Onde o arquivo aniversario eu gero a partir do delphi.

Abs


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar