[php] email van de server opslaan in database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Voor een webmail proggie wat ik schrijf wil ik de email graag van de server ophalen en in een database stoppen (hoeft namelijk niet telkens de connectie naar de mailserver te worden geopend wat het geheel aanzienlijk sneller moet maken). Maar omdat dit m'n eerste onderneming met email (/imap functies) is wil ik een soort zekerheidje inbouwen, dat ik toch nog ergens een backup heb. (nadat de email is ingevoerd in de database wordt ie namelijk verwijderd van de server. (uiteraard nadat ik me er van heb vergewist dat de queries naar de database gelukt zijn)

Nou heb ik zelf al het volgende bedacht (en werkend gekregen)
een tabel met 4 velden:
- mail_id
- str_header
- obj_header
- obj_structure
waar ik in stop:
- id wat de mail in de database heeft gekregen
- imap_fetchheader($inbox, $x) (de volledige header als string)
- serialize(imap_header($inbox, $x))
- serialize(imap_fetchstructure($inbox, $x))

Dan heb ik een snel overzicht van de headers, en kan ik de headers en structure ook nog als objecten retrieven. Ik zou echter, net als met die headers, ook graag de gehele mail als string op willen slaan, maar kan maar niet vinden welke functie ik daar voor kan gebruiken.

(Dit is uiteraard tijdelijk. als ik (zeker) weet dat het werkt dan haal ik dat backup gedeelte weg. Of ik doe er nog een datum veld bij dat ik met een cronjob alles ouder dan een week verwijder..)

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Zelf zou ik nooit mails in een database gaan stoppen, mails kunnen immers best ernstig groot worden (attachments enzo) dat het je database onnodig log en traag maakt.
Ik zou gewoon die mails opslaan in een aparte map met enkel de headers ofzo in de database met een verwijzing naar het bestand, althans dat lijkt mij het makkelijkst.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
de attachments koppel ik los en sla ik apart als bestanden op.
ik had het zo bedacht dat ik dan in de mail-tabel een veld mail_att op true zet en in een attachment_tabel bij hou welke attachments er aan een email zitten. Ik kan ze dan in een folder attachments en een subfolder die gelijk is aan de mail_id opslaan.

maar hoe moet ik volgens jou dan de mail als bestand opslaan? want dan loop ik weer tegen hetzelfde probleem aan waar ik al om vroeg: hoe ik van de hele mail 1 grote string maak. want dat zal ik dan moeten doen. toch?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

string imap_body ( int imap_stream, int msg_number [, int flags])

:?

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
begin half dyslectisch te worden denk ik. Ben een paar keer de hele rij functies afgegaan, maar heb er toch telkens overheengelezen..... :? 8)7 |:(
denk dat ik zo maar eens naar buiten ga een paar zonnestralen opvangen 8)