Fórum Não consigo jogar o conteúdo de um Memo dentro do E-mail Outlook Express com quebra de linha. #393157
29/12/2010
0
begin
if CBDBTodosGrupos.Text = '' then begin //CBDBTodosGrupos é um DBlookupComboBox alimentado com grupos de emails
ShowMessage('Você deve escolher um grupo de e-mails antes de enviar!');
CBDBTodosGrupos.SetFocus; end
else
try
ColetaEmails; //ColetaEmails é uma procedure que coleta todos os emails de uma tabela e os armazena na variável "Emails".
if RGTipoEmail.ItemIndex = 0 then begin // RGTipoEmail é um radiogroup, se = 0 ele chama a procedure EnviaEmailChamadosDistintos;
EnviaEmailChamadosDistintos;//essa procedure está destrinchada mais abaixo.
PrepararEmail(Emails, 'Falhas', MemoDetalhesEmail.Text); end; //essa procedure está explicada por último. ela prepara o Outlook para envio.
except end;
end; [CODE] Depois vem a procedure que irá montar os dados do email: [CODE] procedure TFEmails.EnviaEmailChamadosDistintos;
var
X, Registros : Integer;
begin
X := 0;
Registros := 0;
DM.QSelecFrutas.Close;
DM.QSelecFrutas.Parameters.ParamByName('SELECAO').Value := '1';
DM.QSelecFrutas.Open;
DM.QSelecFrutas.First;
Registros := DM.QSelecFrutas.RecordCount;
//ShowMessage(IntToStr(Registros));
if not DM.QSelecFrutas.IsEmpty then
begin
while X < Registros do
if X < Registros then begin MemoDetalhesEmail.Lines.Add('Maçã: '+DM.QSelecFrutasFruta1.Text+';');
MemoDetalhesEmail.Lines.Add('Laranja: '+DM.QSelecFrutasFruta2.Text+';');
MemoDetalhesEmail.Lines.Add('Início: '+DM.QSelecFrutasHORAINICIO.Text+'h'+';');
MemoDetalhesEmail.Lines.Add('Término: '+DM.QSelecFrutasTermino.Text+';');
MemoDetalhesEmail.Lines.Add('--------------------------------------------------------'+
'----------------------------------------------------------------------------------');
X := X + 1;
DM.QSelecFrutas.Next; end;
end;
if X = Registros then begin
//ShowMessage('X = '+IntToStr(X));
end;
end; [CODE] E por último, a procedure que irá abrir o e-mail do Outlook já com os dados preenchidos: [CODE] procedure TFEmails.PrepararEmail(Para, Assunto, Msg: string);
var
S: string;
begin
S := 'mailto:' + Para + '?subject=' + Assunto +'&body=' + Msg;//dentro desse Msg é que tem o MemoDetalhesEmail.Text com o conteúdeo do Memo e deve ficar no Body do e-mail.
ShellExecute(0, 'open', PChar(S), nil, nil, SW_SHOW);
end; [CODE] Bom pessoal, este é o meu problema. Se alguém já enfrentou algo parecido e puder ajudar agradeço imensamente. Obs: Já tentei usar #13#10 e não funcionou, me parece que esse comando de quebra de linha só funcionava em outras versões do Outlook mas no Express não funciona. A última coisa que eu vi foi algum código usando ReplaceAll substituindo o #13#10 no final de cada linha do memo por um caracter especial que o Outlook entendia como quebra de linha mas não entendi muito bem e a informação parecia estar incompleta. Muito grato a todos! Será que me enrrolei muito? Abs.
Rafael
Curtir tópico
+ 0Posts
30/12/2010
Wesley Yamazack
Eu nunca usei com o Outlook. Porém uma dica que tenho para lhe passar.
Tente usar texto no formato HTML, o componente não aceita isso ? Igual ao Indy onde podemos colocar várias partes do e-mail como text, html, image, e por ai vai ? É apenas uma dica.
Um abraço
Wesley Y
Gostei + 0
30/12/2010
Rafael
Se você ou alguém mais souber como faço então para colocar um texto formatado em html no corpo de email do outlook via programação pode ser uma solução pra mim. Entendo de HTML mas o que eu não sei é fazer o outlook express aceitar essa formatação. Obrigado.
Gostei + 0
31/12/2010
Marcos Iwazaki
https://www.devmedia.com.br/forum/viewtopic.asp?id=380491
a maneira como funcionou é o que o euclides_jc postou... da uma olhada la....
flw.
Gostei + 0
31/12/2010
Rafael
O Meu problema é diferente porque não posso usar Indy, sendo assim não poderei fazer da forma que o Euclides mencionou. Estou preso ao Outlook e ainda por cima é o Express pois o de versão anterior já vi que é possível fazer o que quero. Acho que dessa vez realmente vai ser difícil conseguir isso. Minha última esperança é conseguir pelo menos passar o texto já formatado em HTML para o Body do outlook via programação, coisa que tbm não sei como fazer.
De qualquer forma agradeço muito por sua ajuda meu amigo Marcos. Obrigado por postar!
Gostei + 0
31/12/2010
Rafael
O Meu problema é diferente porque não posso usar Indy, sendo assim não poderei fazer da forma que o Euclides mencionou. Estou preso ao Outlook e ainda por cima é o Express pois o de versão anterior já vi que é possível fazer o que quero. Acho que dessa vez realmente vai ser difícil conseguir isso. Minha última esperança é conseguir pelo menos passar o texto já formatado em HTML para o Body do outlook via programação, coisa que tbm não sei como fazer.
De qualquer forma agradeço muito por sua ajuda meu amigo Marcos. Obrigado por postar!
Marcos não! Desculpa, Muito obrigado Socram!!! Não sei da onde tirei esse nome, marcos.
Gostei + 0
01/01/2011
Rafael
Gostei + 0
17/12/2011
Rafael
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)