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]