Send julekort med PHP

Det er nok for sent at sende julekortene via sneglepost, hvis de skal frem før dagen. Men PHP kan redde samvittigheden for de glemsomme. Vi viser, hvorledes man nemt kan kode postkort, som kan bringe glæde til brugerne af ens website.

Billede- og mail-funktioner

Julen står for døren, og så er det sæson for afsendelse af julekort til alle dem man heller ikke i år nåede at snakke med. Den slags gørest nemmest elektronisk, og postkort-funktionalitet er nemt at implementere i PHP. En af styrkerne ved PHP som webscriptingsprog er den store mængde funktionalitet, man får foræret ganske gratis.

Her i eksemplet benytter vi billedbehandling- og mail-funktioner, og vi stifter bekendtskab med en klasse, som gør det nemt at sende e-mails med vedhæftede filer, uden at skulle anvende det lidt kringlede IMAP-bibliotek.

Ideen er ganske simpel: Vi tilbyder brugeren en række postkortmotiver, som brugeren kan skrive en lille tekst på. Dernæst sender vi billedet af sted med PHP's nemme mail-funktion.

Først præsenterer vi brugeren for en side, hvor der kan vælges et billede og skrives en lille tekst, samt skrives en e-mail-adresse til modtageren. Lad os sige, at formularen, der afsendes til scriptet, indeholder filnavnet på det billede, der skal benyttes, gemt i parameteren $BILLEDFIL, teksten, der skal stå på kortet ligger i parameteren $TEKST, og modtagerens mailadresse i parameteren $MODTAGER.

Posten er på vej

Scriptet er således indrettet: Først importerer vi klassen MIME.class, som håndterer den mail, vi skal sende afsted senere i scriptet. Den kan downloades fra websitet PHP Builder.

<?php

include "MIME.class";

$im = @ImageCreateFromJPEG ($BILLEDFIL);
/* Vi prøver at indlæse filen */
if (!$im) {
  /* Hov, noget gik galt */
  die("Hovsa, kunne ikke åbne billedfilen.");
}

$tc = ImageColorAllocate ($im, 0, 0, 0);

ImageTTFText ($im, 20, 0, 10, 20, $tc,
  "arial.ttf", $TEKST);

Imagejpeg($im,"temp.jpg",75);
ImageDestroy($im);

$mime = new MIME_mail("postkort@minserver.tld",
  $MODTAGER, "En julehilsen!");
$mime->fattach("temp.jpg", "", JPEG, BASE64);
$mime->send_mail();

echo "Posten er på vej!";

?>

Først henter vi billedet ind i variablen $im, og hvis det går galt, sender vi en fejlmeddelelse afsted.

Linien $tc = ImageColorAllocate ($im, 0, 0, 0); definerer en tekstfarve. Her vælger vi RBG-værdien (0,0,0), og det er sort.

Dernæst benyttes funktionen ImageTTFText til at skrive på billedet med. ImageTTFText skriver med truetype-fonte, og her har vi valgt Arial, som vi har kopieret fra C:\WINNT\Fonts, og anbragt i samme mappe som scriptet.

I den næste linie gemmer vi filen under navnet temp.jpg, og frigører billedvariablen $im fra hukommelsen med ImageDestroy.

Så er det blot at benytte funktionerne i MIME-class til at generere og sende vores e-mail afsted med. Den første linie,

$mime = new MIME_mail("postkorttjenesten@minserver.tld", $MODTAGER, "En julehilsen!");

opretter et MIME_mail-objekt, hvor første argument i constructoren er den mail-adresse, som der sendes fra. Det andet argument er modtagerens mailadresse, som vi har modtaget fra formularen på den første side, og det sidste argument er subject-linien i mailen.

Hvis man benytter Windows til at afprøve scripet på, skal man have en mail-server på sin maskine. En lille, nem og gratis mail-server kan downloades fra firmaet Argosoft, og den er god til test-formål.

Annonce

Event: Platform X 2027: AI, skalering og vækst

It-løsninger | København V

Mød verdens stærkeste og mest effektive platforme der driver den digitale transformation samlet i København - og dyk ned i den nyeste teknologi.

22. april 2027 | Gratis deltagelse

Navnenyt fra it-Danmark

Netip A/S har pr. 14. september 2026 ansat Andreas Thorø Møller som Systemkonsulent ved netIP's kontor i Aarhus. Han kommer fra en stilling som Endpoint Consultant hos Fellowmind Denmark A/S. Han er uddannet Datatekniker. Nyt job
Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation, har pr. 1. august 2026 ansat Maria Binger, 44 år,  som CFO. Hun skal især beskæftige sig med den finansielle styring i takt med Iduras vækst i Danmark og internationalt med fokus på blandt andet forecasting. Hun kommer fra en stilling som Director Business Finance hos Danelec. Hun er uddannet cand.merc.aud. fra Copenhagen Business School. Hun har tidligere beskæftiget sig med finance hos Agillic, Cobham SATCOM og Saxo Bank. Nyt job

Maria Binger

Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation,

Netip A/S har pr. 1. august 2026 ansat Thomas B. Steffensen som Seniorkonsulent ved netIP's kontor i Thisted. Han kommer fra en stilling som Senior IT/OT Network Consultant hos Frontmatec. Nyt job
Arctic Wolf Networks har pr. 3. august 2026 ansat Johnny Krogsboll som Head of Sales Engineering for Norden.Med base i Stockholm får han ansvaret for Arctic Wolfs samlede Sales Engineering-organisation i den nordiske region.<br /><br />Johnny Krogsboll skal være med til at udbygge Arctic Wolfs tilstedeværelse i Norden og hjælpe virksomheder og organisationer med at stå stærkere over for et stadig mere komplekst cybertrusselsbillede. Det skal blandt andet ske i tæt samarbejde med Arctic Wolfs vigtigste kanalpartnere i regionen.<br /><br />Gennem sin karriere har Johnny Krogsboll arbejdet med og rådgivet virksomheder hos blandt andre Hewlett-Packard, Trend Micro og Palo Alto Networks med fokus på at skabe konkret værdi af deres teknologiinvesteringer. Nyt job

Johnny Krogsboll

Arctic Wolf Networks