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().