Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie sollte man Mails speichern? (https://www.delphipraxis.net/35763-wie-sollte-man-mails-speichern.html)

fkerber 11. Dez 2004 15:10


Wie sollte man Mails speichern?
 
Hi!

Ich bin im Moment dabei, ein mehr oder weniger kleines Mailprogramm zu planen/schreiben.

Jetzt bin ich an dem Punkt, dass ich mich entscheiden muss, wie ich die abgerufenen Mails speichern soll.
Dazu sollte man wissen: Es ist ein Multi-User Programm. Jeder loggt sich mit Passwort ein.

Bislang fielen mir folgende Möglichkeiten ein:
  • pro Mail eine Datei (verschlüsselt)
  • Datenbank
  • File of eigener type, der je eine Mail beinhaltet
  • ...

Was davon haltet ihr für gut/realisierbar?
Was könnt ihr mir anstelle der ... noch raten?


Ciao Frederic

Jelly 11. Dez 2004 15:18

Re: Wie sollte man Mails speichern?
 
Hallo,

die Mails an sich zu speichern würd ich in einer DB machen. Ist schnell, und Delphi bietet dir in Sachen DB alles was du brauchst, umd Mails nachher wieder zu finden. Auch in Hinsicht auf Multiuser bietet sich eine DB an.

Das Einzige wo du dir bischen Kopfzerbrechen machen solltest, ist wo du die Attachments speicherst. Prinzipiell kommt da auch wieder die DB in Frage, wobei hier dann aber wichtig wird, welche DB du benutzt. Bedenke, daß nach mehreren Jahren Betrieb, du etliche MB an EMails empfangen hast. Paradox würd ich dafür also nicht verwenden.

Also: wenn du einen gescheiten DB-Server nutzt, spricht auch nichts dagegen, die Attachments in die DB (Stichwort Blobfelder) zu legen. Alternativ kannst du die Attachments einfach in einem separatem Verzeichnis hinterlegen. Musst dann aber drauf achten, daß keine Dateien überschrieben werden.

Gruß,
Tom

fkerber 11. Dez 2004 15:25

Re: Wie sollte man Mails speichern?
 
Hi!

Ja, die Größe macht mir da schon ziemliche Sorgen. Insbesondere wenn es wirklich mehrere User sind, dann wird die DB ziemlich riesig. Da irgendne Idee, wie man Abhilfe schaffen könnte?
Allgemein nen Tipp für die DB?


Ciao Frederic

Jelly 11. Dez 2004 15:39

Re: Wie sollte man Mails speichern?
 
Firebird ist kostenlos und nicht schlecht. Willst du aber richtige DB Power, dann nimm MSSQL oder Oracle. Kostet dann aber einen Haufe Asche.

fkerber 11. Dez 2004 15:50

Re: Wie sollte man Mails speichern?
 
Hi!

Nein, es muss absolut kostenfrei bleiben :wink:

Wie sieht es denn da mit den Feldern aus? Wenn ich nämlich die String-Felder mit festen Längenangaben machen muss, dann habe ich ein Problem. Weil in der An-zeile z.B. kann ja doch so einiges drin stehen.

Die Attachments hängen doch normalerweise auch als Base64-kodierte Texte dran, oder? Die Frage ist einfach nur, wie große Texte so ein Feld aufnehem kann?


Ciao Frederic

Jelly 11. Dez 2004 16:08

Re: Wie sollte man Mails speichern?
 
Zitat:

Zitat von fkerber
Nein, es muss absolut kostenfrei bleiben :wink:

Dann nimm Firebird. Ich hab aber keine Erfahrung was die Performance angeht, wenn die DB mal mehrere hundert MB groß wird. Ich würde eventuell die ganzen Attachments gleich dekodiert in ein separates Verzeichnis speichern.

Wie sieht es denn da mit den Feldern aus? Wenn ich nämlich die String-Felder mit festen Längenangaben machen muss, dann habe ich ein Problem. Weil in der An-zeile z.B. kann ja doch so einiges drin stehen.

Zitat:

Zitat von fkerber
Die Attachments hängen doch normalerweise auch als Base64-kodierte Texte dran, oder? Die Frage ist einfach nur, wie große Texte so ein Feld aufnehem kann?

Wenn du die Attachs in Blobfelder speicherst dürfen diese beliebig groß werden.

CenBells 11. Dez 2004 16:18

Re: Wie sollte man Mails speichern?
 
Hi,

ich verwende für mein privates Mailprog Firebird embedded. Das ist schnell, stabil und zuverlässig. Ich speichere die Attachments gepackt in die Tabelle. Dann wächst die nicht ganz so schnell an. Mit den mitgelieferten Packroutinen lässt sich so locker ein attachment auf ein fünftel seiner real-größe komprimieren.

Gruß
Ken

Chewie 11. Dez 2004 16:21

Re: Wie sollte man Mails speichern?
 
Ich würde die Anhänge von den Mails trennen, aus Performance-Gründen. Wenn du über ein/zwei Jahre hinweg viele Mails kriegst, kann das ganze schon an der 2GB-Grenze knabbern. Und wenn das bei jedem Start durchsucht wird bzw. beim Umorganisieren der Datei verschoben wird - gute Nacht.

Jelly 11. Dez 2004 16:25

Re: Wie sollte man Mails speichern?
 
Zitat:

Zitat von Chewie
Ich würde die Anhänge von den Mails trennen, aus Performance-Gründen.

Ich auch. Die Mails an sich würd ich allerdings in eine FB Datenbank packen.

Jelly 11. Dez 2004 16:26

Re: Wie sollte man Mails speichern?
 
Zitat:

Zitat von CenBells
Mit den mitgelieferten Packroutinen lässt sich so locker ein attachment auf ein fünftel seiner real-größe komprimieren.

Welche mitgelieferten Packroutinen?
Ein Zip Datei oder ein Jpg kriegst du egal mit welchen Packprogramm nicht mehr groß komprimiert.

moritz 11. Dez 2004 16:29

Re: Wie sollte man Mails speichern?
 
Ich kenne mich nicht groß mit Datenbanken aus, hab aber trotzdem einen Vorschlag, der mit gerade gekommen ist. Es kann gut sein dass es absoluter Nonsens ist ^^
Und zwar: Mach 2 Datenbanken. Eine für die Mails, eine für die Anhänge. Dann kannst du Mails schneller anzeigen und musst trotzdem keine Atachments so speichern.

Jelly 11. Dez 2004 16:34

Re: Wie sollte man Mails speichern?
 
Zitat:

Zitat von moritz
und musst trotzdem keine Atachments so speichern.

Doch, musst du immer :mrgreen:
Entweder halt in die DB oder gleich als Datei auf die Festplatte... Was spricht denn gegen Letzteres. So kannst du wenigstens die Attachments öffnen, ohne jedesmal dein EMail Programm dafür zu bemühen.

moritz 11. Dez 2004 16:36

Re: Wie sollte man Mails speichern?
 
Äh ja...meine halt auf der Festplatte ^^ Aber ich enthalt mich jetzt wieder ^^

fkerber 11. Dez 2004 16:38

Re: Wie sollte man Mails speichern?
 
Hi!

Danke für die Tipps.
Wenn ich die Attachments aber direkt auf der Platte liegen ist die Sache mit dem Passwortschutz nicht mehr so gegeben.
Ich mach mich mal über Firebird schlau.
Danke.

Ciao Frederic

CenBells 11. Dez 2004 16:38

Re: Wie sollte man Mails speichern?
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von CenBells
Mit den mitgelieferten Packroutinen lässt sich so locker ein attachment auf ein fünftel seiner real-größe komprimieren.

Welche mitgelieferten Packroutinen?
Ein Zip Datei oder ein Jpg kriegst du egal mit welchen Packprogramm nicht mehr groß komprimiert.

Es sind aber nicht nur zips und jpgs, die man als Anhang verschicken kann. Und dann lohnt das packen doch wiedermal. ;)

Die Ziproutinen in der Unit ZLib (bei meinem D7 dabei)

Gruß
Ken

Mackhack 13. Dez 2004 03:49

Re: Wie sollte man Mails speichern?
 
Hi,

kann dir ADS wärmstens empfehlen:

Zu bekommen hier

Advantage TDataSet Descendant for Delphi 3-7/Kylix/C++Builder

Um die DB zu bearbeiten oder einfach anzulegen empfehle ich dir auch den Advantage Data Architect.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz