nilsmartin.no

 nilsmartinno 

Epost: PHP-mail

Mail-funksjonen er innebygd i PHP. Ingen installasjon kreves.

Syntaksen er ganske enkel:

<?php
mail($til,$overskrift,$melding);
?>

Eksempel:
<?php
mail("din@epostadresse.no","Overskriften","Meldingen" );  # mail-funksjonen.
?>

En kan lage test filer for å sjekke om mail-funksjonen fungerer.

Feilsjekk 1

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.


Feilsjekk 2

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. ";}
?>
Lag en testfil i en teksteditor og lagre den som f.eks. feilsjekk2.php
– Endre $til variabelen i koden over.
– Last opp filen til vev-tjeneren.
– Åpne filen i nettleseren for å kjøre skriptet.
– Mailfunksjonen returnerer en boolsk variabel hvis den fungerer.
– Hvis eposten fungerer skrives det ut en melding i nettleseren om at meldingen er sendt. I motsatt fall har funksjonen feilet.
– Åpne epostprogrammet for se om meldingen ble mottatt.
– Husk å slette filen etter bruk.

Feilsjekk 3

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

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.


headers

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.


Epost-skjema

Se  Epost_skjema.html


PHP-koden

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.";}
?>


Adresse:
<?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.";}
?>


Postnummer:
<?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! "); }
?>


Sted:
<?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. ";}
?>


Epost:
<?php
$epost = ($_POST['epost']); 
$epost = test_input($epost);
echo ($epost . '.'); 
if (filter_var($epost, FILTER_VALIDATE_EMAIL)) {} 
else {echo "Feilmelding: Epostadressen '$epost' er ugyldig! ";}
?>


Telefonnummer:
<?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.

 


Lenker

php.net Manual mail().


Ordliste

MTA  –  Mail Transfer Agent.
Se også:  MTA 
PEAR  –  PHP Extensions and Applications Package,
er et rammeverk for pakkesystem for PHP med mange ulike ressurser.
Se også:  PEAR  PEARmail 
PEARmail  –  er et vanlig alternativ til den innebygde mail-funksjonen.
Se også:  PEARmail  PEAR  Epost 
Epost  –  mail() er en innebygd epost-funksjon i PHP.
Ingen installering kreves.
Se også:  Epost  PEARmail
PHP  –  er et tjenerside-skriptspråk som brukes til å lage dynamiske vev-sider.
Se også:  PHP  PHPordbok.html  Internettordbok.html 
Vevtjener  –  Webserver.
Se også:  Vevtjener  Internettordbok.html