Problemas ao anexar arquivo.
Estou lendo uma tabela com uma query, onde eu acho os parâmetros para enviar e-mail. (Delphi 7). Estou usando o Indy.
Meu código está assim:
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
Attachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
e assim por diante.
Acontece que o primeiro e-mail anexa correto. O segundo, anexa o arquivo do segundo registro mais o arq. do primeiro. O terceiro anexa o terceiro arq. mais os dois primeios lidos...
Eu queria que fosse somente o arquivo referente ao arq. lido.
Alguém pode me ajudar?!
Meu código está assim:
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
Attachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
e assim por diante.
Acontece que o primeiro e-mail anexa correto. O segundo, anexa o arquivo do segundo registro mais o arq. do primeiro. O terceiro anexa o terceiro arq. mais os dois primeios lidos...
Eu queria que fosse somente o arquivo referente ao arq. lido.
Alguém pode me ajudar?!
Jussara
Curtidas 0
Respostas
Jussara
01/08/2003
Desculpe, acabei escrevendo o título errado....
Só para complementar, minha query retornou 3 registros num teste que fiz agora. O campo arq, está com os seguintes dados, consecutivamente:
- C:\arq.pdf
- C:\arq2.pdf
- C:\arq3.pdf
Era para cada arquivo ser enviado para uma pessoa específica.
A primeira pessoa recebeu o arq.pdf. A segunda recebeu o arq.pdf e arq2.pdf. A terceira pessoa recebeu o arq.pdf, arq2.pdf e o arq3.pdf
Obrigada.
Só para complementar, minha query retornou 3 registros num teste que fiz agora. O campo arq, está com os seguintes dados, consecutivamente:
- C:\arq.pdf
- C:\arq2.pdf
- C:\arq3.pdf
Era para cada arquivo ser enviado para uma pessoa específica.
A primeira pessoa recebeu o arq.pdf. A segunda recebeu o arq.pdf e arq2.pdf. A terceira pessoa recebeu o arq.pdf, arq2.pdf e o arq3.pdf
Obrigada.
GOSTEI 0
Lfernandos
01/08/2003
Olá Jussara!
Tente fazer assim:
Parece que o campo arq da sua tabela tem o path de três arquivos, logo, você precisaria por exemplo separar a string em seus respectivos arquivos.
Eu não entendi direito esta parte de como estão armazendados os nomes dos arquivos, qualquer coisa mande um e-mail.
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
IdMessage.MessageParts.Clear;
TIdAttachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
Next;
end;
IdSMTP.Send(IdMessage);
Tente fazer assim:
Parece que o campo arq da sua tabela tem o path de três arquivos, logo, você precisaria por exemplo separar a string em seus respectivos arquivos.
Eu não entendi direito esta parte de como estão armazendados os nomes dos arquivos, qualquer coisa mande um e-mail.
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
IdMessage.MessageParts.Clear;
TIdAttachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
Next;
end;
IdSMTP.Send(IdMessage);
GOSTEI 0
Lfernandos
01/08/2003
Desculpe na verdade o código ficaria assim:
(O IdSMTP.Send(IdMessage); tem que estar dentro do laço while)
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
IdMessage.MessageParts.Clear;
TIdAttachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
IdSMTP.Send(IdMessage);
Next;
end;
(O IdSMTP.Send(IdMessage); tem que estar dentro do laço while)
With qSelecionaEmail do
begin
Open;
while not Eof do
begin
SMTP.Host := FieldByName(´AUD_SERSAI´).AsString;
SMTP.Username:= ´xxxxxx´;
SMTP.Password := ´*****´;
IdMessage.From.Address := ´jussara@jussara.com.br´;
IdMessage.Recipients.EMailAddresses := ´jmc.jmc@terra.com.br´
IdMessage.Subject := FieldByName(´AUD_ASSUNTO´).AsString;
IdMessage.Body.Text := ´Esta é uma mensagem automática. Favor não responder´;
IdMessage.MessageParts.Clear;
TIdAttachment.Create(IdMessage.MessageParts,FieldByName(´arq´).AsString);
IdSMTP.Send(IdMessage);
Next;
end;
GOSTEI 0
Jussara
01/08/2003
Muito obrigada.
Faltava a linha:
IdMessage.MessageParts.Clear;
Valeu.
Faltava a linha:
IdMessage.MessageParts.Clear;
Valeu.
GOSTEI 0