Membros Pro EasySoft Sistemas Postado 7 Novembro, 2024 Membros Pro Postado 7 Novembro, 2024 Boa tarde amigos. Atualizai recentemente o ACBR e estou com problemas no envio de e-mail com mais de um anexo. Apenas o ultimo anexo adicionado ao e-mail é encaminhado. Vocês podem me ajudar? Obrigado.
Moderadores Juliomar Marchetti Postado 7 Novembro, 2024 Moderadores Postado 7 Novembro, 2024 boa noite poderia postar como está fazendo o uso do LibMail? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro EasySoft Sistemas Postado 8 Novembro, 2024 Autor Membros Pro Postado 8 Novembro, 2024 function TfrmEnvioEmail.ExecutarEnvioEmail(const sSmtpHost, sSmtpPort, sSmtpUser, sSmtpPasswd, sFrom, sTo, sAssunto: String; sMensagem : TStrings; SSL : Boolean; sCC: TStrings=nil; Anexos:TStringList=nil; PedeConfirma: Boolean = False; AguardarEnvio: Boolean = False; NomeRemetente: String = '' ) : Boolean; var ThreadSMTP : TSendMailThread; m:TMimemess; p: TMimepart; StreamNFe : TStringStream; NomeArq : String; i: Integer; mmCopia : TStringList; vTimeOut : Shortint; begin Result := False; mmCopia := TStringList.Create; mmCopia.Clear; m := TMimemess.create; ThreadSMTP := TSendMailThread.Create(Self) ; // Não Libera, pois usa FreeOnTerminate := True ; StreamNFe := TStringStream.Create(''); try TratarsCC(sCC, mmCopia); TratarsTO(sTO, mmCopia); AnexarRodape(sMensagem, mmCopia, sFrom, sAssunto); ADDBody(m, sMensagem, p); ADDAnexos(Anexos, m, p); ADDDestino(m, p, NomeRemetente, sFrom, sAssunto, PedeConfirma); ThreadSMTP.FreeOnTerminate := True; ThreadSMTP.sFrom := sFrom; ThreadSMTP.sTo := fDestino; if (mmCopia.Count > 0) then ThreadSMTP.sCC := mmCopia; ThreadSMTP.slmsg_Lines.AddStrings(m.Lines); ThreadSMTP.smtp.UserName := sSmtpUser; ThreadSMTP.smtp.Password := sSmtpPasswd; ThreadSMTP.smtp.TargetHost := sSmtpHost; if Trim(sSmtpPort)<>'' then ThreadSMTP.smtp.TargetPort := sSmtpPort; ThreadSMTP.smtp.FullSSL := SSL; ThreadSMTP.smtp.AutoTLS := IIF(Configurar_Integer(731) IN [2,3], True, False); // TLS ThreadSMTP.Resume; // inicia a thread if AguardarEnvio then begin vTimeOut := 0; repeat Sleep(500); Application.ProcessMessages; inc(vTimeOut); if vTimeOut >= 6 then break; until ThreadSMTP.Terminado; Result := not ThreadSMTP.OcorreramErros; end; finally m.free; StreamNFe.Free; mmCopia.Free; end; end; procedure TfrmEnvioEmail.ADDAnexos(Anexos:TStringList; m:TMimemess; p: TMimepart); var i : Integer; begin if not assigned(Anexos) then exit; // for i := 0 to Anexos.Count - 1 do for i := Anexos.Count - 1 downto 0 do begin if Anexos <> nil then m.AddPartBinaryFromFile(Anexos[i], p); end; end; Lembrando que o e-mail é enviado, mas, mesmo passando os anexos para a função, somente o último arquivo é enviado em anexo.
Membros Pro EasySoft Sistemas Postado 12 Novembro, 2024 Autor Membros Pro Postado 12 Novembro, 2024 ???
Consultores Daniel InfoCotidiano Postado 12 Novembro, 2024 Consultores Postado 12 Novembro, 2024 Boa tarde ! vou testar em nosso ambiente. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Solution Daniel InfoCotidiano Postado 12 Novembro, 2024 Consultores Solution Postado 12 Novembro, 2024 @EasySoft Sistemas Com o programa exemplo está funcionando. Como temos ele em comum, pode testar com ele por favor Faz um loop ai ACBrMail1.AddAttachment(Dir+NomeArquivo, 'Descricao do Anexo', adAttachment); Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Recommended Posts