########## 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- #60form method="post" action="mail.php"#62 #60textarea name="body"#62#60/textarea#62 #60input type="submit" name="submit" value="send"/#62 #60/form#62 Skjemaet over videresender informasjon videre til *mail.php*, som tar seg av selve sendingen av mailen. -mail.php- #60?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"); } ?#62 *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: mail( $to, $subject, $_POST['body'], "From: Mitt webskjema #60$brukernavn@$SERVER_NAME#62\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. Further reading: http://www.php.net/manual/en/ref.mail.phphttp://www.php.net/manual/en/function.mail.phpLinks in the article: http://www.php.net/