Sende e-post med PHP

Dette enkle scriptet lar deg sende e-post via et skjema. Ikke alle ISP-er tilbyr denne funksjonen, da den kan misbrukes, f.eks. som anonym e-postklient.

1: Nødvendige filer

Scriptet baserer seg på to filer som jeg har kalt:

  • epost.php
  • bekreftelse.php
  • epost.css

2: Skjema for utfylling

Filen "epost.php" inneholder skjemaet brukeren fyller ut, og er vist her.

  1. <form action="bekreftelse.php" method="post">
  2. <p id="e-post_navn">
  3. Navn:<br /><input type="text" name="navn" size="20" maxlength="50" tabindex="1" />
  4. </p>
  5.  
  6. <p id="e-post_epost">
  7. E-post:<br /><input type="text" name="epost" size="20" maxlength="50" tabindex="2" />
  8. </p>
  9.  
  10. <p id="e-post_melding">Melding:<br />
  11. <textarea cols="72" rows="10" name="tekst" tabindex="3" class="e-post_melding">
  12. </textarea><br />
  13.  
  14. <input type="submit" name="submit" value="Send" tabindex="4" class="epost_knapp" />
  15. <input type="reset" name="reset" value="Slett" tabindex="5" class="epost_knapp" />
  16.  
  17. </form>

3: Script for behandling av skjema

Som du kan se av scriptet, henter skjemaet filen "bekreftelse.php". Denne filen utfører selve sendingen og ser ut som følger.

  1. <h1>Din henvendelse er sendt!</h1>
  2.  
  3. <?php
  4. if ($submit)
  5. {
  6. if (!$navn)
  7. {
  8. echo ("Du må fylle ut alle feltene!");
  9. }
  10. else
  11. {
  12. $sendto = "dinepostadresse@dittdomene.no"; // Skriv inn din e-mail.
  13. $subject = "Her kan du skrive en tittel"; // Her velger du tittel.
  14. $ip = ( $_SERVER["REMOTE_ADDR"] );
  15. $message = "
  16. Navn: $navn
  17.  
  18. E-post: $epost
  19.  
  20. Tekst: $tekst
  21.  
  22. IP-adresse : $ip
  23.  
  24. Referer: $HTTP_REFERER
  25.  
  26. ";
  27. $headers = "Fra: $navn\r\n";
  28. mail($sendto, $subject, $message, $headers);
  29. echo ("<p style=\"font-weight : bold;\">Din henvendelse er sendt!</p>");
  30.  
  31. }
  32. }
  33. ?>

4: Stilsetting av skjema

Husk at stilene enten må legges til et eksisterende stilsett, eller legges til i <head>-taggen. All stilsetting av skjemaet gjør vi i filen "epost.css":

  1. p#epost_navn {
  2. font-weight: bold;
  3. margin: 0 0 0.6em 0;
  4. padding: 0;
  5. }
  6.  
  7. p#epost_epost {
  8. font-weight: bold;
  9. margin-bottom: 0.6em;
  10. margin-top: 0;
  11. padding: 0;
  12. }
  13.  
  14. p#epost_melding {
  15. font-weight: bold;
  16. margin: 0;
  17. padding: 0;
  18. }
  19.  
  20. textarea.epost_melding {
  21. margin-bottom : 0.5em;
  22. }
  23.  
  24. input.epost_knapp {
  25. border : thin solid black;
  26. }

5: Endring av nødvendige variabler

Videre må du endre følgende variabler:

  1. $sendto = "dinepostadresse@domene.no"; // Skriv inn din e-post

Her setter du inn din e-postadresse mellom anførselstegnene. Denne vil ikke være synlig for brukeren.

  1. $subject = "Tittel for eposten settes her"; // Her velger du tittel

Dette er e-postens tittel eller subject på engelsk. Alternativt kan du lage eget felt hvor brukeren selv kan bestemme tittel.

6: Testing

Til slutt laster du opp filene, sørger for at de har korrekte tilganger og tester herligheten. Se løsningen i bruk her!

Copyright 1995 - 2008 Martin Bekkelund
xhtml
css
rss
cc
508
aaa
v6.08b