Mail-funksjonen er innebygd i PHP. Ingen installasjon kreves.
Syntaksen er ganske enkel:
<?php mail($til,$overskrift,$melding); ?>
<?php mail("din@epostadresse.no","Overskriften","Meldingen" ); # mail-funksjonen. ?>
En kan lage test filer for å sjekke om mail-funksjonen fungerer.
For å sjekke om mail-funksjonen ikke er sperret kan en lage en fil med dette skriptet:
<?php $mailfinnes = function_exists("mail"); if ($mailfinnes) {echo "mail() er tilgjengelig. "; } else {echo "mail() er blitt sperret. "; } ?>
Hvis skriptet legges i
public_html mappen
kan den aksesseres med
dittdomene.no/feilsjekk1.php
Noen ISPer har sperret den innebygde mail-funksjonen og erstattet den med et ferdiginstallert alternativ, som f.eks. PEARmail.
Test om sending av mail fungerer.
<?php $overskrift = "Feilsjekk 2."; $til = "din@epostadresse.no"; # Mottakers epost addresse. $melding = "PHP mail fungerer. "; # Meldingsinnholdet. # Sender eposten og lagrer resultatet i en variabel: $epostenfungerer = mail($til,$overskrift,$melding); if ($epostenfungerer) {echo "Epostmeldingen ble sendt. "; } else {echo "Feilmelding: Sendingen feilet. ";} ?>
Testfil med feilrapportering.
<?php # En kan legge til disse to linjene øverst i skript 2 for å enable feilrapportering: ini_set( 'display_errors', 1 ); error_reporting( E_ALL ); ?>
phpinfo() er en funksjon som henter informasjon fra systemet om hvordan PHP er konfigurert.
Legg følgende tekst i en fil som en f.eks. kaller visinfo.php
:
<?php phpinfo(); ?>
Viser konfigureringsinnstillinger for PHP.
Denne filen bør også slettes etter bruk.
En kan sende med ekstra headers.
<?php $overskrift = "Test av headers. "; $til = "din@epostadresse.no"; // Mottakeradresse. $melding = "Testing av headere. "; # Meldingsinnholdet. $fra = "fra@epostadresse.no"; //Angi avsenderadresse. $headers = "From:" . $fra; # Sender eposten med header og tester for feil. if (mail($til,$overskrift,$melding,$headers )) { echo("Meldingen ble sendt. "); } else { echo("Feilmelding: Meldingen ble ikke sendt. "); } ?>
Vanligvis er det en default fra-header satt i php.ini.
Ellers må en sette inn en, for å unngå en feilmelding.
Husk å slette filen etter bruk.
PHP-koden som behandler skjemaet kan se slik ut:
Din melding:
<?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?>
<?php $overskrift = "Bli medlem."; // Emnet på eposten. ?>
Navn:
<?php $navn = ($_POST['navn']); $navn = test_input($navn); $navn = wordwrap($navn, 70, "\r\n"); echo ($navn . '.'); $lengde = strlen($navn); if ($lengde > 100) {echo "Feilmelding: Navnet er for langt! Lengden er $lengde tegn.";} ?>
<?php $adr = ($_POST['adr']); $adr = test_input($adr); $adr = wordwrap($adr, 70, "\r\n"); echo ($adr . '.'); $lengde = strlen($adr); if ($lengde > 100) {echo "Feilmelding: Adressen er for lang! Lengden er $lengde tegn.";} ?>
<?php $Postnr = ($_POST['Postnr']); $Postnr = test_input($Postnr); echo ($Postnr . '.'); $lengde = strlen($Postnr); if ($lengde > 5) {echo "Feilmelding: Postnumret er for langt! Lengden er $lengde tegn. ";} $heltall =$Postnr; $heltall = (int)$heltall; // $Postnr er nå av type heltall. if ($heltall > 9999) { echo ("Feilmelding: Postnummer er bare gyldig mellom 0001 og 9999! "); } if ($heltall < 1) { echo ("Feilmelding: Postnummer er bare gyldig mellom 0001 og 9999! "); } ?>
<?php $Sted = ($_POST['Sted']); $Sted = test_input($Sted); echo ($Sted . '.'); $lengde = strlen($Sted); if ($lengde > 100) {echo "Feilmelding: Stedsnavnet er for langt! Lengden er $lengde tegn. ";} ?>
<?php $epost = ($_POST['epost']); $epost = test_input($epost); echo ($epost . '.'); if (filter_var($epost, FILTER_VALIDATE_EMAIL)) {} else {echo "Feilmelding: Epostadressen '$epost' er ugyldig! ";} ?>
<?php $tlf = ($_POST['tlf']); $tlf = test_input($tlf); echo ($tlf . '.'); $lengde = strlen($tlf); if ($lengde > 50) {echo "Feilmelding: Telefonnumret er for langt! Lengden er $lengde tegn.";} ?>
<?php $melding = "Henvendelsen gjelder: " . ($_POST['melding']); $melding = test_input($melding); $melding = wordwrap($melding, 70, "\r\n"); echo ($melding); $lengde = strlen($melding); if ($lengde > 200) {echo "Feilmelding: Teksten er for lang! Lengden er $lengde tegn.";} ?>
<?php // Meldingen. $melding = "\nNavn: " . $navn . "\nAdresse: " . $adr . "\nPostnr: " . $Postnr . "\nSted: " . $Sted . "\nEpost: " . $epost . "\nTelefon: " . $tlf . "\nMelding: " . $melding; ?>
<?php //Instillinger for e-postmeldingen $til = "din@epostadresse.no"; # Mottakeradresse. $fra = "fra@epostadresse.no"; # Angir avsenderadresse. $headers = "From:" . $fra; # Legger til fra-adressen i header. $epostenfungerer = mail($til,$overskrift,$melding,$headers); # Melding eller evt. feilmelding. if ($epostenfungerer===TRUE) {echo "Epostmeldingen ble sendt. "; } else {echo "Feilmelding: Sendingen feilet. ";} ?>
Takk for din henvendelse.
$til og $fra variablene må endres til dine egne adresser.
php.net Manual mail().