Série da semana: Primeiros passos no Angular

Veja mais

Enviar e-mail Indy com HTML e TEXT no corpo do e-mail

16/12/2006

5

Pessoal boa tarde.

Meu sistema manda e-mail normalmente em HTML todo formatado bonitinho, mas estou com um pequeno problema.

O HTML não gera quebra de linha somente se no proprio memo eu digitar
porem não é esse o intuito, então queria saber se tem como colocar text e html juntos, ou fazer o html fazer a quebra de linha quando eu der um enter

Eu já li o artigo do http://www.dragonsoftru.com/?html=indy-email.html e ele fala
lMessage.Body.Clear; lTextPart := TIdText.Create(lMessage.MessageParts); lTextPart.Body.Text := ´This is a plain text message´; lTextPart.ContentType := ´text/plain´; lTextPart := TIdText.Create(lMessage.MessageParts); lTextPart.Body.Text := ´<html><body>This is a HTML message</body></html>´; lTextPart.ContentType := ´text/html´;


so que no meu codigo eu não faço assim declarando variaveis, o meu esta assim

IdMessage.ContentType := ´text/html´; IdMessage.Body.Add(´<html><body>´); IdMessage.Body.Add(´Funcionário: ´+QryCadInterno.FieldByName(´FUNCIONARIO´).AsString+´ ´); IdMessage.Body.Add(´Setor: ´+QryCadInterno.FieldByName(´SETOR´).AsString+ ´ ´); IdMessage.Body.Add(´Data: ´+edtData.Text+ ´ ´);


Eu já tentei de tudo e não consegui, alguem tem alguma luz?


Responder

Post mais votado

16/12/2006

...por isso queria mandar em text somente essa parte do e-mail
Coloque essa parte da mensagem entre as tags <pre> e </pre>.


Responder

Mais Posts

16/12/2006

Massuda

O HTML não gera quebra de linha somente se no proprio memo eu digitar <br> porem não é esse o intuito...
Não sei se entendi direito, mas HTML só reconhece quebra de linha se encontrar uma tag <br> ou <p>. É assim que funciona e isso independe do fato de você estar enviando o HTML por email.

O que você tem que fazer é inserir via programa os <br> onde for necessário.


Responder

16/12/2006

Corcos

Sim Massuda eu sei

O problema é: Eu tenho um Memo onde os usuarios digitam o ´corpo do e-mail´ dando enter, e etc...

Ex do memo:
Sr. Fulano,

Favor comprar 2 metros de tecido xxx das seguintes marcas:
- Textil
- XXXX

Grato,

Jorge

Quando eu envio o e-mail em HTML ele sai assim
Sr. Fulano,Favor comprar 2 metros de tecido xxx das seguintes marcas:- Textil- XXXX Grato, Jorge

ou seja, ele não da os enters, por isso queria mandar em text somente essa parte do e-mail


Responder

16/12/2006

Corcos

Obrigado novamente Massuda!!!

Fiz aqui e deu certinho, ficou so com uma fonte pequena mas vou corrigir.

Valeu de novo


Responder

17/12/2006

Corcos

Uma dúvida agora, tem como enviar em RichText por e-mail sem sair

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}} \viewkind4\uc1\pard\lang1033\f0\fs16 TESTEEEEEEEE \par \par TESTE2222222222222 \par \par \par \pard\qr


No banco de dados esta como BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET WIN1252

por enquanto eu estou jogando em um campo varchar(1000) mas não vem nada formatado.


Responder

17/12/2006

Massuda

...tem como enviar em RichText por e-mail...
O formato RTF (usado pelo RichText) não é padrão na internet, parece que só é suportado pelo Outlook/Outlook Express. Só HTML funciona com qualquer programa de email.


Responder

19/12/2017

Renan

Massuda, muito obrigado pela sua dica sobre o uso das tags <pre> para a quebra do texto. Estava desde ontem quebrando a cabeça pra resolver isso.

Abraços.
Responder
Faz muito tempo que postaram essa dúvida, mas pra quem estiver pesquisando e servir, segue sugestão:

IdMessage1.Body.Text := DBedit.Text + ''<br>'' + dm.ClientDataSetProdutoProd_Nome.AsString+ ''<p>'' + memoMsg.Lines.Text + ''</pre>'' + Assinatura.Text ;
ou
IdMessage1.Body.Add(DBedit.Text + ''<br>'' + dm.ClientDataSetProdutoProd_Nome.AsString+ ''<p>'' + memoMsg.Lines.Text + ''</pre>'' + Assinatura.Tex);

Para quebra de linha sem alterar a formatação da letra, como ocorreu com o amigo acima (ele utilizou <pre>), utilizar tanto o </pre>, quanto o <p> ou o <br>.
Responder