Avatar billede gooze Nybegynder
19. maj 2001 - 18:42 Der er 5 kommentarer

Unit/klasse til håndtering af emails (ikke DB) på disk?

Hej.

Jeg er ved at lave en emailklient, men mangler
en måde at gemme/hente informationer om
de enkelte emails på harddisken.
Emails\'ene skal være i een enkelt fil for
hver box (inbox, outbox etc).

Nogen ideer (fuld kode...)?
Avatar billede martinlind Nybegynder
20. maj 2001 - 08:37 #1
TYPE
  TMyEmail = record
    Felt1 : String;
    Felt2 : Integer;
  end;

VAR
  Buf : TMyMail;
  F : File of TMyMail;

begin
  AssignFile(F,\'Inbox.dat\');
  Writeln(F,Buf);
// ReadLn(F,Buf);
  CloseFile(F);
end;
Avatar billede gooze Nybegynder
20. maj 2001 - 09:50 #2
Ja, i princippet _kunne_ man måske godt benytte
noget lignende og indkapsle det i en klasse
med en tilhørende TList og indlæse _alle_
oplysninger om emails\'ene.

Men, jeg mangler _hele_ emails og ikke kun
nogle enkelte oplysninger.

;-)
Avatar billede martinlind Nybegynder
20. maj 2001 - 11:20 #3
Så gå ind i hjælpen til Netmaster\'s POP3 component og kig på properti\'es eller evt. INDY\'s POP3 comp.

/Martin
Avatar billede martinlind Nybegynder
20. maj 2001 - 11:22 #4
fra INDY :

TIdMessage = class(TIdBaseComponent)
  protected
    FBccList: TIdEmailAddressList;
    FBody: TStrings;
    FCharSet: string;
    FCcList: TIdEmailAddressList;
    FContentType: string;
    FContentTransferEncoding: string;
    FDate: TDateTime;
    FIsEncoded : Boolean;
    FExtraHeaders: TIdHeaderList;
    FFrom: TIdEmailAddressItem;
    FHeaders: TIdHeaderList;
    FMessageParts: TIdMessageParts;
    FMsgId: string;
    FNewsGroups: TStrings;
    FNoDecode: Boolean;
    FOrganization: string;
    FPriority: TIdMessagePriority;
    FSubject: string;
    FReceiptRecipient: TIdEmailAddressItem;
    FRecipients: TIdEmailAddressList;
    FReferences: string;
    FReplyTo: TIdEmailAddressList;
    FSender: TIdEMailAddressItem;
    FXProgram: string;
  public
    procedure AddHeader(const Value: string);
    procedure Clear; virtual;
    procedure ClearBody;
    procedure ClearHeader;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure GetHeader;
    function GenerateHeader: TIdHeaderList;
    function GetUseNowForDate: Boolean;
    procedure SetBody(const Value: TStrings);
    procedure SetNewsGroups(const Value: TStrings);
    procedure SetExtraHeaders(const Value: TIdHeaderList);
    procedure SetUseNowForDate(const Value: Boolean);
    //
    property IsEncoded : Boolean read fIsEncoded write fIsEncoded;
    property MsgId: string read FMsgId write FMsgId;
    property Headers: TIdHeaderList read FHeaders;
    property MessageParts: TIdMessageParts read FMessageParts;
  published
    property Body: TStrings read FBody write SetBody;
    property BccList: TIdEmailAddressList read FBccList write FBccList;
    property CharSet: string read FCharSet write FCharSet;
    property CCList: TIdEmailAddressList read FCcList write FCcList;
    property ContentType: string read FContentType write FContentType;
    property ContentTransferEncoding: string read FContentTransferEncoding
    write FContentTransferEncoding;
    property Date: TDateTime read FDate write FDate;
    //
    property ExtraHeaders: TIdHeaderList read FExtraHeaders write SetExtraHeaders;
    property From: TIdEmailAddressItem read FFrom write FFrom;
    property NewsGroups: TStrings read FNewsGroups write SetNewsGroups;
    property NoDecode: Boolean read FNoDecode write FNoDecode;
    property Organization: string read FOrganization write FOrganization;
    property Priority: TIdMessagePriority read FPriority write FPriority default mpNormal;
    property ReceiptRecipient: TIdEmailAddressItem read FReceiptRecipient write FReceiptRecipient;
    property Recipients: TIdEmailAddressList read FRecipients write FRecipients;
    property References: string read FReferences write FReferences;
    property ReplyTo: TIdEmailAddressList read FReplyTo write FReplyTo;
    property Subject: string read FSubject write FSubject;
    property Sender: TIdEmailAddressItem read FSender write FSender;
    property UseNowForDate: Boolean read GetUseNowForDate write SetUseNowForDate;
  end;


/Martin
Avatar billede gooze Nybegynder
20. maj 2001 - 12:49 #5
Netmasters komponenter er _totalt_ ubrugelige
og fyldt med fejl ...
-
Indy ligeså, omend en hel del bedre.
Indy har bare ikke support for hverken at gemme
eller hente \"rå mails\" til/fra disk.
-

Hvis ingen har en \"brugbar\" løsning tror jeg at jeg vil lukke spørgsmålet, da jeg har fundet
en _gammel_ klasse fra FreeNet som sandsynligvis kan bruges.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester