Boa tarde Senhores,
    depois de tanto penar pra tentar achar uma solução estou aqui escrevendo 
pra vocês pra ver se alguém pode me ajudar.
Estou tentando enviar arquivos anexados no e-mail e está ocorrendo o seguinte.
Se eu enviar um e-mail com o arquivo x.txt em anexo para [EMAIL PROTECTED] tudo 
certo,  se eu enviar o arquivo y.txt para [EMAIL PROTECTED] sem fechar o 
programa, ele automaticamente anexa os arquivos enviados anteriormente, ou 
seja, envia o x.txt + y.txt,e isso não pode acontecer, abaixo segue o código 
que estou usando, se alguém puder me ajudar por favor.

var Controle : integer;
 
SqlAnterior,emailremetente,usernameremetente,servidoremails,usernameautenticacao,senhaautenticacao,comcopia,
   linha1,linha2,linha3,linha4,linha5,linha6,linha7,linha8,linha9,linha10 : 
String;

 xAnexo : Integer;
   ConfIni : TInifile;
begin
 // limpa o memo da mensagem que vai no corpo do e-mail
   MemoMensagem.Clear;
   // limpa o listbox contendo o ou os arquivos que estarão anexos ao e-mail
   ListBox1.Clear;
 If DataM.IBqAssistenciasENVIADO.AsString = 'Sim' then begin
    If Application.MessageBox('Deseja enviar novamente este pedido?.','Soft 
System >> Pergunta <<',292)= 6 then begin
         SqlAnterior := DatAM.IBqAssistencias.SQL.Text;
         FFortesReport := TFFortesReport.Create(Application);
         Try
            Controle := DatAM.IBqAssistenciasCONTROLE.AsInteger;
            DataM.IBqAssistencias.Close;
            DatAM.IBqAssistencias.SQL.Clear;
            DataM.IBqAssistencias.SQL.Add('Select * from tassistencias where 
controle = '+IntToStr(Controle));
            DatAM.IBqAssistencias.Open;
            //
      {      DataM.IbqItensAssistencias.Close;
            DataM.IbqItensAssistencias.SQL.Clear;
            DatAM.IbqItensAssistencias.SQL.Add('Select * from 
titensassistencias where codassistencia = '+IntToStr(Controle));
            DataM.IbqItensAssistencias.Open;}
            //
            
FFortesReport.RLImage7.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Logotipo.bmp');
            
FFortesReport.RLEnvioPedido.SaveToFile(ExtractFilePath(Application.ExeName)+'rel\Solicitacao'+DataM.IBqAssistenciasCONTROLE.AsString+'.pdf');
            //
            
ListBox1.Items.Add(ExtractFilePath(Application.ExeName)+'rel\Solicitacao'+DataM.IBqAssistenciasCONTROLE.AsString+'.pdf');
            ListBox1.Refresh;
    //
            ConfIni := 
TIniFile.Create((ExtractFilePath(Application.ExeName)+'ConfigSoft.ini'));
            emailremetente := confIni.ReadString('Assistencias','E-mail do 
remetente',emailremetente);
            usernameremetente := confIni.ReadString('Assistencias','User name 
do remetente',usernameremetente);
            servidoremails := confIni.ReadString('Assistencias','Servidor de 
e-mails de saída',servidoremails);
            usernameautenticacao := confIni.ReadString('Assistencias','User 
name para autenticação',usernameautenticacao);
            senhaautenticacao := confIni.ReadString('Assistencias','Senha para 
autenticação',senhaautenticacao);
            comcopia := confIni.ReadString('Assistencias','Enviar com cópia 
para',comcopia);
            Linha1 := confIni.ReadString('Assistencias','Mensagem 
linha1',Linha1);
            Linha2 := confIni.ReadString('Assistencias','Mensagem 
linha2',Linha2);
            Linha3 := confIni.ReadString('Assistencias','Mensagem 
linha3',Linha3);
            Linha4 := confIni.ReadString('Assistencias','Mensagem 
linha4',Linha4);
            Linha5 := confIni.ReadString('Assistencias','Mensagem 
linha5',Linha5);
            Linha6 := confIni.ReadString('Assistencias','Mensagem 
linha6',Linha6);
            Linha7 := confIni.ReadString('Assistencias','Mensagem 
linha7',Linha7);
            Linha8 := confIni.ReadString('Assistencias','Mensagem 
linha8',Linha8);
            Linha9 := confIni.ReadString('Assistencias','Mensagem 
linha9',Linha9);
            Linha10 := confIni.ReadString('Assistencias','Mensagem 
linha10',Linha10);
            ConfIni.Free;
            //
            MemoMensagem.Lines.Append(linha1);
            MemoMensagem.Lines.Append(linha2);
            MemoMensagem.Lines.Append(linha3);
            MemoMensagem.Lines.Append(linha4);
            MemoMensagem.Lines.Append(linha5);
            MemoMensagem.Lines.Append(linha6);
            MemoMensagem.Lines.Append(linha7);
            MemoMensagem.Lines.Append(linha8);
            MemoMensagem.Lines.Append(linha9);
            MemoMensagem.Lines.Append(linha10);
            //
            IdMessage.Recipients.EMailAddresses := 
LowerCase(DatAM.IBqAssistenciasEMAILFORNECEDOR.AsString);
            IdMessage.CCList.EMailAddresses := LowerCase(comcopia);
//            IdMessage.BccList.EMailAddresses := edtCCO.Text;

            //Trata a Prioridade da mensagem
//            case cbxPrioridade.ItemIndex of
    IdMessage.Priority := mpHigh;
//               1 : IdMessage.Priority := mpNormal;
//               2 : IdMessage.Priority := mpLow;
//            end;

            IdMessage.Subject := 'Solicitação de assistência técnica 
'+FormatFloat('0000',DatAM.IBqAssistenciasCONTROLE.AsInteger);
            IdMessage.Body := MemoMensagem.Lines;

//            if cbxConfirmaLeitura.Checked then
            IdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto 
Resposta
ShowMessage('verificar anexos agora');
            //Tratando os arquivos anexos
            for xAnexo := 0 to ListBox1.Items.Count-1 do
             TIdAttachment.create(idmessage.MessageParts, 
TFileName(ListBox1.Items.Strings[xAnexo]));
ShowMessage('anexos verificados');
            IdSMTP.Host := servidoremails;
            IdSMTP.AuthenticationType := atLogin;
            IdSMTP.Username := usernameautenticacao;
            IdSMTP.Password := senhaautenticacao;

            IdPOP31.Host := servidoremails;
            IdPOP31.Password := senhaautenticacao;
            IdPOP31.Username := usernameautenticacao;
            IdPOP31.Password := senhaautenticacao;
            IdPOP31.Connect();
ShowMessagE('Conect');
            IdSMTP.Connect;
            try
ShowMessage('send');
             IdSMTP.Send(IdMessage);
            finally
ShowMessagE('Disconect');
             IdSMTP.Disconnect;
            end;
            Application.MessageBox('Email enviado com sucesso!', 'Confirmação', 
MB_ICONINFORMATION + MB_OK);
            //
            IdPOP31.Disconnect;
            //
   If Application.MessageBox('Abrir o formulário enviado para o 
fornecedor?.','Soft System >> Pergunta <<',292) = 6 then
    FFortesReport.RLEnvioPedido.PreviewModal;
         Finally
            FFortesReport.Free;
            //
            DataM.IBqAssistencias.Close;
            DatAM.IBqAssistencias.SQL.Clear;
            DataM.IBqAssistencias.SQL.Add(SqlAnterior);
            DatAM.IBqAssistencias.Open;
            DatAM.IBqAssistencias.Locate('controle',controle,[]);
            DatAM.IBqAssistencias.Edit;
            DataM.IBqAssistenciasENVIADO.AsString := 'Sim';
            DataM.IBqAssistenciasDATAENVIO.AsDateTime := Date;
            DatAM.IBqAssistencias.Post;
     end;
      end;
   end
   else begin
      ListBox1.Clear;
      MemoMensagem.Clear;
      SqlAnterior := DatAM.IBqAssistencias.SQL.Text;
      FFortesReport := TFFortesReport.Create(Application);
      Try
         Controle := DatAM.IBqAssistenciasCONTROLE.AsInteger;
         DataM.IBqAssistencias.Close;
         DatAM.IBqAssistencias.SQL.Clear;
         DataM.IBqAssistencias.SQL.Add('Select * from tassistencias where 
controle = '+IntToStr(Controle));
         DatAM.IBqAssistencias.Open;
         //
   {      DataM.IbqItensAssistencias.Close;
         DataM.IbqItensAssistencias.SQL.Clear;
         DatAM.IbqItensAssistencias.SQL.Add('Select * from titensassistencias 
where codassistencia = '+IntToStr(Controle));
         DataM.IbqItensAssistencias.Open;}
         //
         
FFortesReport.RLImage7.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Logotipo.bmp');
         
FFortesReport.RLEnvioPedido.SaveToFile(ExtractFilePath(Application.ExeName)+'rel\Solicitacao'+DataM.IBqAssistenciasCONTROLE.AsString+'.pdf');
            //
            
ListBox1.Items.Add(ExtractFilePath(Application.ExeName)+'rel\Solicitacao'+DataM.IBqAssistenciasCONTROLE.AsString+'.pdf');
    //
            ListBox1.Refresh;
            ConfIni := 
TIniFile.Create((ExtractFilePath(Application.ExeName)+'ConfigSoft.ini'));
            emailremetente := confIni.ReadString('Assistencias','E-mail do 
remetente',emailremetente);
            usernameremetente := confIni.ReadString('Assistencias','User name 
do remetente',usernameremetente);
            servidoremails := confIni.ReadString('Assistencias','Servidor de 
e-mails de saída',servidoremails);
            usernameautenticacao := confIni.ReadString('Assistencias','User 
name para autenticação',usernameautenticacao);
            senhaautenticacao := confIni.ReadString('Assistencias','Senha para 
autenticação',senhaautenticacao);
            comcopia := confIni.ReadString('Assistencias','Enviar com cópia 
para',comcopia);
            Linha1 := confIni.ReadString('Assistencias','Mensagem 
linha1',Linha1);
            Linha2 := confIni.ReadString('Assistencias','Mensagem 
linha2',Linha2);
            Linha3 := confIni.ReadString('Assistencias','Mensagem 
linha3',Linha3);
            Linha4 := confIni.ReadString('Assistencias','Mensagem 
linha4',Linha4);
            Linha5 := confIni.ReadString('Assistencias','Mensagem 
linha5',Linha5);
            Linha6 := confIni.ReadString('Assistencias','Mensagem 
linha6',Linha6);
            Linha7 := confIni.ReadString('Assistencias','Mensagem 
linha7',Linha7);
            Linha8 := confIni.ReadString('Assistencias','Mensagem 
linha8',Linha8);
            Linha9 := confIni.ReadString('Assistencias','Mensagem 
linha9',Linha9);
            Linha10 := confIni.ReadString('Assistencias','Mensagem 
linha10',Linha10);
            ConfIni.Free;
            //
            MemoMensagem.Lines.Append(linha1);
            MemoMensagem.Lines.Append(linha2);
            MemoMensagem.Lines.Append(linha3);
            MemoMensagem.Lines.Append(linha4);
            MemoMensagem.Lines.Append(linha5);
            MemoMensagem.Lines.Append(linha6);
            MemoMensagem.Lines.Append(linha7);
            MemoMensagem.Lines.Append(linha8);
            MemoMensagem.Lines.Append(linha9);
            MemoMensagem.Lines.Append(linha10);
            //
            IdMessage.Recipients.EMailAddresses := 
LowerCase(DatAM.IBqAssistenciasEMAILFORNECEDOR.AsString);
            IdMessage.CCList.EMailAddresses := LowerCase(comcopia);
//            IdMessage.BccList.EMailAddresses := edtCCO.Text;

            //Trata a Prioridade da mensagem
//            case cbxPrioridade.ItemIndex of
    IdMessage.Priority := mpHigh;
//               1 : IdMessage.Priority := mpNormal;
//               2 : IdMessage.Priority := mpLow;
//            end;

            IdMessage.Subject := 'Solicitação de assistência técnica 
'+FormatFloat('0000',DatAM.IBqAssistenciasCONTROLE.AsInteger);
            IdMessage.Body := MemoMensagem.Lines;

//            if cbxConfirmaLeitura.Checked then
            IdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto 
Resposta
            //Tratando os arquivos anexos
            for xAnexo := 0 to ListBox1.Items.Count-1 do
             TIdAttachment.create(idmessage.MessageParts, 
TFileName(ListBox1.Items.Strings[xAnexo]));
            IdSMTP.Host := servidoremails;
            IdSMTP.AuthenticationType := atLogin;
            IdSMTP.Username := usernameautenticacao;
            IdSMTP.Password := senhaautenticacao;
    IdSMTP.Connect();
            IdPOP31.Host := servidoremails;
            IdPOP31.Password := senhaautenticacao;
            IdPOP31.Username := usernameautenticacao;
            IdPOP31.Password := senhaautenticacao;
            IdPOP31.Connect();
            try
             IdSMTP.Send(IdMessage);
            finally
             IdSMTP.Disconnect;
            end;
            Application.MessageBox('Email enviado com sucesso!', 'Confirmação', 
MB_ICONINFORMATION + MB_OK);
            //
            IdPOP31.Disconnect;
            IdSMTP.Disconnect;
            //
    If Application.MessageBox('Abrir o formulário enviado para o 
fornecedor?.','Soft System >> Pergunta <<',292) = 6 then
     FFortesReport.RLEnvioPedido.PreviewModal;
      Finally
         FFortesReport.Free;
         //
         DataM.IBqAssistencias.Close;
         DatAM.IBqAssistencias.SQL.Clear;
         DataM.IBqAssistencias.SQL.Add(SqlAnterior);
         DatAM.IBqAssistencias.Open;
         DatAM.IBqAssistencias.Locate('controle',controle,[]);
         DatAM.IBqAssistencias.Edit;
         DataM.IBqAssistenciasENVIADO.AsString := 'Sim';
         DataM.IBqAssistenciasDATAENVIO.AsDateTime := Date;
         DatAM.IBqAssistencias.Post;
      end;
   end;
   for xAnexo := 0 to ListBox1.Items.Count-1 do
    TIdAttachment.Create(idmessage.MessageParts, 
TFileName(ListBox1.Items.Strings[xAnexo])).Free;

Atenciosamente.

Allan Gabriel.





[As partes desta mensagem que não continham texto foram removidas]

Responder a