Enviar e-mail Indy com HTML e TEXT no corpo do e-mail
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
so que no meu codigo eu não faço assim declarando variaveis, o meu esta assim
Eu já tentei de tudo e não consegui, alguem tem alguma luz?
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?
Corcos
Curtidas 0
Melhor post
Massuda
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>.GOSTEI 1
Mais Respostas
Massuda
16/12/2006
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.
GOSTEI 0
Corcos
16/12/2006
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
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
GOSTEI 0
Corcos
16/12/2006
Obrigado novamente Massuda!!!
Fiz aqui e deu certinho, ficou so com uma fonte pequena mas vou corrigir.
Valeu de novo
Fiz aqui e deu certinho, ficou so com uma fonte pequena mas vou corrigir.
Valeu de novo
GOSTEI 0
Corcos
16/12/2006
Uma dúvida agora, tem como enviar em RichText por e-mail sem sair
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.
{\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.
GOSTEI 0
Massuda
16/12/2006
...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.GOSTEI 0
Renan
16/12/2006
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.
Abraços.
GOSTEI 0
Everson Navarro
16/12/2006
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>.
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>.
GOSTEI 0