PHP og IMAP på Mac OS X (Leopard)

For nogle måneder siden, havde min mail udbyder problemer med sortering af spam, og al det spam der blev sendt, røg lige igennem filtre på mail servere. Det tog dem åbenbart lang tid at find ud af hvad der var galt. Imellem tiden blev jeg træt af al det spam og besluttede at lave min egen filter/program som vil sortere spam væk fra min indbakke.

Da jeg kun kender PHP på et niveau dette opgave krævede, var det jo oplagt at bruge PHP. Så det gjorde jeg.

Nu er det sådan at, PHP, som standard, kommer uden IMAP understøttelse. Så jeg måtte kompilere PHP med IMAP. Kiggede lidt rundt på nettet, men kunne ikke lige finde noget brugbart. Efter lidt research lykkedes det mig at kompilere PHP med IMAP.

Så lad os komme i gang.

Først skal vi hente IMAP kilde kode fra ftp://ftp.cac.washington.edu/imap/ .

På denne adresse findes en del forskellige filer, vi skal bruge den der hedder noget i retning imap-2007b-DEV.SNAP-...tar.Z.

Denne fil skal vi gemme et sted. Jeg har lavet en mappe src/ i min hjemmemappe. Der gemmer jeg al kilde kode, for nemmere holde styre på koden fra forskellige projekter.

Udpak IMAP kilde kode

tar xvfz imap.tar.Z

Går ind i mappen

cd imap

Og nu skal vi til at kompilire IMAP, så vi kan bruge det sammen med PHP.

I Makefile er der lidt mere info hvordan man kompilere IMAP til de forskellige platformer. Da jeg bruger Mac OS X Leopard bruger jeg oxp. Dette er egnet til Mac OS X Tiger og nyere, til ældre versioner skal der bruges osx.

make oxp

Efter make er udført uden fejl, er vi parate til at installere IMAP. Men da vi skal kun bruge IMAP sammen med PHP skal vi gemme det et sted hvor vi ikke evt. overskriver allerede installerede versioner IMAP af selve systemet.
Her har jeg igen et sted jeg plejer at installere programmer/projekter i. Det hedder /opt, der har jeg alt det ting jeg installere, så hvis noget går galt, kan jeg altid bare slette det, uden at det skal påvirke systemet på nogen måde.
Nok om det, tilbage til arbejde, nu skal vi kopiere nogle filer i bestemte mapper i /opt/local.

Vi skal først oprette mappen til imap i /opt/local

cd /opt/local
mkdir imap
mkdir imap/include
mkdir imap/lib

Nu har vi lavet mappe imap og undermapper lib/ og include/. Nogle filer skal ligge i include/ mappen og nogle andre skal i lib/. Så lad os lige gør det.

I følgende trin, bruger jeg ~/src/imap/ det er den mappe jeg har min kilde kode til imap i. c-client/ er undermappen som er blevet oprettet af make process fra tidligere, det er faktisk der, alle de filer vi skal bruge ligger.

cd imap/
cp ~/src/imap/c-client/*.h ./lib/
cp ~/src/imap/c-client/*.c ./lib/
cp ~/src/imap/c-client/c-client.a ./lib/libc-client.a

Det er faktisk det, nu er vi parate til at kompilere PHP med IMAP understøttelse.

For at kompilere PHP med IMAP, skal vi huske følgende parametre når vi konfigurere PHP.

./configure --with-imap=/opt/local/imap --with-kerberos