Skrevet av: GratisGuide.net
Noen ganger kan det være praktisk å behandle innkommende e-postmeldinger automatisk.
Denne artikkelen skal forsøke å forklare hvordan du med Apache (og virtuelt webhotell, dvs. at du leier plass på en webserver) kan la et PHP-skript behandle innkommende e-postmeldinger.
Det er flere nyttige formål for slik behandling, for eksempel et e-post-basert supportsystem med billetter ("tickets") som blir lagt til en database basert på billettnummeret i emne-feltet for oppfølging. Eller kanskje vil du gjengi meldingen fra avsender i ditt automatiske svar ("Du skrev: ..."), eller ha avsenders emne i ditt automatiske svar ("Sv: ...").
GratisGuide.net kan ikke ta ansvar for feil, skader eller annet som måtte oppstå som følge av at du benytter fremgangsmåten som beskrevet under - med henblikk på bruk av og/eller endringer i serverfiler. Du er selv ansvarlig for det du gjør. Ikke glem å ta backup av alle filer før du gjør endringer i dem.
For det første må du ha en Apache webserver for å følge denne artikkelens fremgangsmåte, og i tillegg PHP4. I tillegg må du ha Telnet/Shell-tilgang til webserveren, eller en snill administrator som kan kopiere filer for deg.
En valiases-fil inneholder instruksjoner for hvordan epost-behandleren skal behandle innkommende epost. Normalt ligger filer i mappen
/etc/valiases/
og de har navn etter det domenet adressene gjelder, for eksempel
/etc/valiases/gratisguide.net
Normalt blir denne filen opprettet når din konto blir opprettet på serveren. Er den ikke opprettet kan du lage en, f.eks. med kommandoen
ed /etc/valiases/[dittdomene]
Det kan være lurt å høre med administratoren av webserveren for sikkerhets skyld, i tilfelle din server er satt opp på en annen måte.
Vi vil at all e-post sendt til support@gratisguide.net skal videresendes til PHP-skriptet vårt, som vi har kalt support.php. Dette skriptet ligger på serveren vår med banen /home/megselv/support.php (på serveren har vi brukernavnet "megselv").
I vår valiases-fil legger vi inn linjen:
support@gratisguide.net: |php -q /home/megselv/support.php
Vår valiases-fil ser da slik ut:
support@gratisguide.net: |php -q /home/megselv/support.php
webmaster@gratisguide.net: sjef@gratisguide.net
*: megselv
I vår valiases-fil sier vi nå at all e-post til support@gratisguide.net skal "pipe-s" til PHP-skriptet support.php; vi gjør det ved å angi vertikal strek ( | ) og programmet (PHP). All e-post til webmaster@gratisguide.net skal videresendes til sjef@gratisguide.net. All annen e-post skal sendes til postboksen megselv, som er vår bruker-id på serveren.
Det at vi "pipe-r" e-postmeldingen til PHP-skriptet betyr ikke nødvendigvis at PHP-skriptet vårt kan bruke den inngående informasjonen (e-postmeldingen) sånn uten videre. Vi må fortelle skriptet at den skal lese den inngående informasjonen.
Det gjør vi enklest ved å åpne en filpeker på standard-inn. Det gjør vi for eksempel med denne koden:
$inn = fopen('php://stdin', 'r');
Her blir variabelen $inn en filpeker som henter informasjon fra stdin.
Nå som vi har filpekeren, er det bare å lese informasjonen - e-postmeldingen. Her gjør vi det til varibelen $mld:
while(!feof($inn)) { $mld .= fgets($inn, 4096); }
Du kan se hva PHP-skriptet ditt får av informasjon ved å for eksempel sende innholdet i variabelen $mld (fra skriptet over) til deg selv ved å legge til linjen
mail("din_epost_adresse", "Mail fra PHP!", "$mld");
i PHP-skriptet ditt. Deretter sender du en e-postmelding til e-postadressen du la til i valiases-filen, i vårt eksempel var det support@gratisguide.net. Så får du e-post tilbake med hele (og da mener vi hele) meldingen du sendte :-)
Du må vaske informasjonen du får fra e-postmeldingen din; f.eks. sørge for at e-postmeldingen ikke gjør at systemkommandoer kan utføres. Du bør også sette deg inn i SMTP-protokollen (se RFC 821) for informasjon om hvordan en e-postmelding er bygd opp.
Værre var det ikke. Det som gjenstår nå er å behandle den inngående e-postmeldingen i PHP-skriptet ditt, men det er en annen historie.
Ønsker du å gjengi denne artikkelen eller noe fra den må du gjerne gjøre det, men ikke glem kildereferanse. For å lenke til denne artikkelen kan du bruke URL-en http://www.gratisguide.net/artikler/php/send_e-post_til_et_php-skript.html.
GratisGuide.net
» Forsiden
» Om oss
» Nyhetsbrev
» Lage lenker til oss
» Opphavsrett
Nyhetsklipp
» Hovedside
» RSS-feeds
Artikler
» Hovedside
» Apache webserver
» Domenenavn
» Grafikk og clipart
» HTML og CSS
» Hjemmeside på 1-2-3
» Lage en basis-side
» Javascript
» MySQL
» PHP
» Søkemotorer
» WAP og WML
» Webdesign
Ressurs-databasen
» Hovedside
» Dmoz / ODP
» World/Norsk/
» Regional/.../Norway/
» Domeneavn/e-post
» Gjestebøker
» Grafikk
» Innhold/syndikert
» Juridisk/nettikette
» Lenke-/bannerbytte
» Programmeringsspråk
» HTML
» Javascript
» MySQL og SQL
» PHP
» WML-script
» Reklame/annonsering
» Søkemotorer/kataloger
» Statistikk/tellere
» Topplister
» Vedlikehold
» WAP og WML
» Webdesign-maler
» Webhotell
» Webmaster-forum
» Annet
Bokdatabasen
» Hovedside
» Databaser
» Handel og markedsføring
» Innholdsredigering
» Juridisk
» Programmering
» Programvare
» Websideutvikling
» Generelt
Kodeservice
» Hovedside
» Kodegeneratorer
» Dato
» Fylkesliste
» Meta-merke
» Rammesett
» Søkebokser
» Sprett-opp-vindu
» Stilark
» WML
Innholdstjenester
» Hovedside
» Diskusjonsforum
» IP-adresse
» Nyhetsoversikt
» Om dagen i dag