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