Ver Mensaje Individual
  #2  
Antiguo 24-07-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Reputación: 23
poliburro Va por buen camino
Yo lo hago de la siguiente manera:

Código Delphi [-]
 
Function TFrmMainform.ProcesaCorreo(PiNumCorreo: Integer): String;
Var
  LiNumMsgParts: Integer;         // Número de bloques del correo
  LStlCuerpoCorreo: TStringList;  // contenido del mensaje
  LStlcorreo: TStringList;  // Correo por almacenar
  LIdmMensaje: TIdMessage;        // Instancia del mensaje
Begin
  Result := 'Nada';
  Try
    Try
      LStlCuerpoCorreo := TStringList.Create;
      LStlcorreo := TStringList.Create;
      LIdmMensaje := TIdMessage.Create(self);
      LIdmMensaje.ContentType := 'text/plain';
      PopCorreo.Retrieve(PiNumCorreo,LIdmMensaje);
      If LIdmMensaje.MessageParts.Count = 0 Then
        LStlCuerpoCorreo.AddStrings(LIdmMensaje.Body)
      Else
        For LiNumMsgParts := 0 To Pred(LIdmMensaje.MessageParts.Count) - 1 Do
          If LIdmMensaje.MessageParts.Items[LiNumMsgParts] Is TIdText Then
            LStlCuerpoCorreo.AddStrings(TIdText(LIdmMensaje.MessageParts.Items[LiNumMsgParts]).Body);
      // Para evitar que se creen varios tickets a partir de un mismo correo, se
      // elimina el mensaje antes de procesarlo con el autómata
      PopCorreo.Delete(PiNumCorreo);
      If Result = 'Nada' then
        Begin
           ..............
        End;
    Finally
      LStlCuerpoCorreo.Free;
      LStlcorreo.Free;
      LIdmMensaje.Free;
    End;
  Except
    On Error: Exception Do
      Result := 'Ha ocurrido un error al guardar el mensaje. Error: ' + Error.message;
  End;
End;

Sobre guardarlo en access, pues es super sencillo en tu tabla incluyes un campo de tipo memo y listo, grabas el correo.

Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita