Ir para conteúdo
  • Cadastre-se

dev botao

ACBR MAIL - Salvar na pasta de Enviados


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1805 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ola pessoal

Uma necessidade que surgiu agora foi de salvar os email enviados na caixa de "Itens Enviados"

usando a rotina abaixo eu consigo salvar em qualquer pasta no me servidor utilizando o componente TIdSMTP junto com o TIdIMAP4

mas eu preciso passar TIdMessage como paramentro.

   IdIMAP41.SelectMailbox('INBOX.ITENS_ENVIADOS');
   IdIMAP41.AppendMsg('INBOX.ITENS_ENVIADOS',   IdMessage );

Como minha rotina de email esta toda amarrada no ACBR e funcionando 100% gostaria de manter e nao precisar reescrever

obrigado

 

  • Fundadores
  • Solution
Postado

o ACBrMAIL apenas fala com Servidores SMTP... esse componente está re-enviando o e-mail, para um servidor IMAP

Talvez você possa fazer alguma configuração no lado do seu Servidor, para que ele sincronize as contas SMTP e IMAP

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Entendi. Usando o idSmtp eu envio o e-mail através de uma TIdMessage.. no acbr não teria como eu recuperar a message para repassar para o imap? Realmente vou utilizar outro componente para imap.. 

  • Curtir 1
  • 3 semanas depois ...
Postado

Fiz uma rotina para salvar o email enviado pelo ACBR em uma pasta no
servidor, como a pasta de Itens Enviado ou outra qualquer. Espero que seja util. Seguem tb uma classe completa onde passo todas as configs .. se quiserem da uma olhada..

 

uses IdIMAP4, ACBrMail, IdMessage;

procedure TEmail_Componente.Salvar_Email_Enviado;
var mensagem : TIdMessage;
    strm : TMemoryStream;
    IdIMAP4 : TIdIMAP4;
    Arquivo_EML  : TIdMessage;
begin
  //============= se a pasta para salvar o email for informada salva uma copia nela

  mensagem    := TIdMessage.Create(nil);
  Arquivo_EML := TIdMessage.Create(nil);
  strm        := TMemoryStream.Create;

  ACBrMail.SaveToStream(strm);

  strm.Position := 0;
  mensagem.LoadFromStream(strm);

  strm.Position := 0;
  Arquivo_EML.LoadFromStream(strm);


  IdIMAP4                := TIdIMAP4.Create(nil);
  IdIMAP4.ConnectTimeout := 30000;
  IdIMAP4.ReadTimeout    := 30000;
  IdIMAP4.Username       := 'Usuario';
  IdIMAP4.Password       := 'Senha';
  IdIMAP4.Port           := IMAP_Porta;
  IdIMAP4.Host           := 'IMAP_Host';

  IdIMAP4.Connect();
  //========== se a pasta nao existir ela é criada ============
  IdIMAP4.CreateMailBox( 'Nome_pasta_enviado' );
  //========== Seleciona a pasta ============
  IdIMAP4.SelectMailbox( 'Nome_pasta_enviado');
  //========== Salva a msg na pasta ============
  IdIMAP4.AppendMsg( 'Nome_pasta_enviado', mensagem);

  //=======para listar as pastas que existem no servidor e pegar o nome certinho use
  // IdIMAP4.ListMailBoxes(memo1.Lines);

// Para salvar o arquivo no banco de dados

//   qrGravaEmail.FieldByName('ARQUIVO_EML').Assign(strm);

 

  IdIMAP4.Disconnect();

  mensagem.Destroy;
  strm.Destroy;
  Arquivo_EML.Destroy;
  IdIMAP4.Destroy;
end;

Email_Class.pas

  • Curtir 2
  • Obrigado 3
  • Este tópico foi criado há 1805 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.