Du er her: Hovedside > Artikler > PHP > Artikkel

Send e-post til et PHP-skript

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: ...").

Viktig informasjon

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.

Oppsett på webserveren

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.

Lage/endre din valiases-fil

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.

Oppsett av PHP-skriptet

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 :-)

Ting å tenke på

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.

Ferdig!

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.

Opphavsrett

Ø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.

Tilbake til Artikler / PHP



Annonse

Annonse

Google

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