www.ntnu.no *
INFOWEB >  utvikling og programmering >  webutvikling  > Hvordan sende mail fra en webside
Tasks
You may add comments
Or e-mail this article
Read articles written by langemyh
User rating
How much did this article help you?
Much Some Little
Print preview
You do not need a 'printer-friendly page' to print this page. Here's why
Contents

Hvordan sende mail fra en webside

Hvordan bruke php til å sende mail fra en webside

Hvis man for eksempel skal lage et webbasert bestillingsskjema er det ofte greit å få skjemaet til å sende en bekreftelse eller bestilling på mail. Her følger en rask, liten innføring i hvordan du kan få til dette.

Aller først må du ha en html-side med et sendeskjema

mail.html

kode #1
   <form method="post" action="mail.php">
    <textarea name="body"></textarea>
    <input type="submit" name="submit" value="send"/>
   </form>
  

Skjemaet over videresender informasjon videre til mail.php, som tar seg av selve sendingen av mailen.

mail.php

kode #2
  <?php
  // konfigurasjon
  $to="s.sprett@ntnu.no";
  $subject="automagisk mail fra webmailsendeskjemaet mitt";

  // send mailen
  if (mail($to, $subject, $_POST['body'])) {
    print ( "Følgende mail ble levert til $to : \n" .
            "Subject: $subject \n" .
	    "Melding: $_POST['body']"
	    );
  } 

  else {
   print ( "En feil oppstod ved sending av mail.. trykk back og prøv på ny.\n");
  }
  ?>
  

To og Subject-headere er hardkoda (altså skrevet inn direkte av deg) for å passe på at bruker ikke får sendt mail andre steder enn dit vi vil. Dette er utrolig viktig, da misbruk av headere kan føre til at phpkoden vår sprer spam.

Muligheter for forbedring

er mange. Det jeg prøver å få frem er hvor viktig det er å begrense mulighetene brukeren har til å utnytte systemet. Forslag til endringer: PHP sin mail() har muligheten til å legge til ekstra headere:

kode #3
mail( $to, $subject, $_POST['body'], 
      "From: Mitt webskjema <$brukernavn@$SERVER_NAME>\n" .
      "X-Originating-IP: $REMOTE_ADDR\n"
      );

$brukernavn bør typisk byttes ut med gyldig brukernavn.

mail() kan legge til options til sendmail, se man sendmail.

Man kan begrense hvilke ipadresser som får lov til å sende mail via skjemaet. Se eksempler på http://www.php.net/.

Konvertering fra FormMail.pl

Man må altså lage en mottakerdel som tar mot variablene fra formen, skriver ut de på en oversiktlig og fin måte, og sender hele greia med mail(). Det anbefales å skrive egne script for hver side. Mer generiske løsninger er lettere å misbruke.


Languages: no Comments: 0 Aid: 211 User rating:
 
 
Last updated: 2007-04-25 Author: langemyh Read: 6545 times