Send e-mails med PHP igennem Mailgun
Opdatering: Mailgun 2.0 er frigivet, læs her!
For nyligt er Mailgun PHP-library version 2.0 frigivet. Dette har ændret en lille ting i installationen, der gør vi skal installere en ekstra pakke via Composer.
Download kildekoden:
Der er i version 2.0 af Mailgun kommet en lille ændring. Vi skal nu via Composer installere en HTTP-connector. Det er heldigvis meget simpelt! En opdateret guide følger her:
Mailgun 2.0 benytter nu en teknologi som hedder Httplug. Httplug understøtter en række forskellige HTTP-connectors bl.a. Guzzle, Mock, Buzz, cURL, Socket mv. og modsat tidligere, skal vi nu selv vælge hvilken af ovenstående vi ønsker at benytte. Det er heldigvis meget nemt, og kræver kun ét ekstra lille trin i installationen.
Installationen af Mailgun er det samme, det eneste nye (som er vist i punkt 4 herunder) er vi også via Composer skal installere Guzzle6.
Her er alle steps fra start til slut, som også vist i videoen (+ det nye step 4) der skal til for at sende e-mails med MailGun:
1. Lav en projektmappe og hop ind i den
$ mkdir ~/Desktop/v5-Mailgun && cd ~/Desktop/v5-Mailgun
2. Tjek at du har nyeste version af Composer (har du ikke allerede installeret composer, viser vi hvordan i videoen)
$ composer self-update
Updating to version 5c9c9102400dc4e38b8ea91074f22c7014050159.
Downloading: 100%
3. Installer Mailgun 2.0 library
$ composer require mailgun/mailgun-php:~2.0
4. I version 2.0 af Mailgun PHP-lib. skal vi nu manuel installere en http-connector:
$ composer require php-http/guzzle6-adapter:^1.0
5. Så er vi klar til at sende en e-mail.
Du kan nu bruge denne "testmail.php"-kode til at sende en e-mail.
<?php
# Vis fejl-beskeder (ændre til off for at skjule fejlbeskeder)
ini_set( "display_errors", "on" );
# Hent Composer Autoloader
require 'vendor/autoload.php';
# Brug Mailgun Library fra Composer
use Mailgun\Mailgun;
# Angiv din API-key og domæne fra Mailgun her:
$apikey = 'key-xxx';
$domain = "sandbox-xxx.mailgun.org";
# Initialiser klienten og HTTP-connectoren
$client = new \Http\Adapter\Guzzle6\Client();
$mailgun = new \Mailgun\Mailgun($apikey, $client);
# Send en e-mail
$Status = $mailgun->sendMessage($domain, array(
'from' => 'Excited User <mailgun@'.$domain.'>',
'to' => 'Modtager <[email protected]>',
'subject' => 'Test-mail',
'text' => 'Kære rare modtager. Dette er en [testmail]. Med venlige hilsner, hele v5.dk teamet.'
));
Tip: Følg videoen herover for trin-for-trin vejledning i hvordan du gennemfører ovenstående 4 punkter.
Gør-det-selv e-mails
Det med at sende mails fra egen server, var noget alle gjorde. blot nogle år tilbage, men i dag er det en større jungle, end det burde være, at få en e-mail fra A til B, hvis men selv skal stå for leverancen med egen server.
Der er så mange elementer og teknologier man skal have styr på, for at være nogenlunde sikker på at ens e-mail ikke lander i modtagerens SPAM-filter.
Ydermere blokerer de fleste Internet-udbydere som standard for afsendelse af e-mails, fordi det ofte har været misbrugt til masseudsendelse af SPAM. Hvis en computer bliver inficeret med Malware eller Virus, er der stor chance for at denne bliver misbrugt til masseudsendelse af spam, og det er netop årsagen til at TDC, Stofa, Telenor, Waoo, Fullrate mv. automatisk blokerer for udsendelse af e-mails på sin Internetforbindelse.
3. parts e-mail tjeneste
Jeg plejer derfor at anbefale folk at brug en 3. parts e-mail tjeneste som f.eks. Mailgun.com - der tillader at sende op til 10.000 e-mails pr. måned, helt gratis.
Her på v5.dk benytter vi Mandrill.com. Mandrill minder meget om Mailgun, men kan nogle flere ting, omvendt så koster Mandrill også ca. 70 kr. om måneden hvor Mailgun er gratis (op til 10.000 e-mails pr. måned).
Her er nogle af de forskellige e-mail udbydere. I videoen her gennemgår vi opsætningen af Mailgun.com, men konceptet er det samme for de andre tjenester her:
- Mailgun.com fra Rackspace (den vi bruger i videoen her)
- SendGrid.com
- Mandrill.com fra Mailchimp
- Postmarkapp.com
- Mailjet.com
Mailgun
Mailgun har i skrivende stund en gratis pakke (gratis for altid) der tillader at sende op til 10.000 e-mails pr. måned uden det koster noget. Sender du mere end 10.000 e-mails pr. måned, koster det få kr. ekstra.
Mailgun.com udemærker sig specialt ved at være utrolig simpel, der er ikke tusindevis af indstillinger man skal igennem for at komme igang. Man opretter blot en bruger, og så er man igang med et "test"-domæne (sandboxdomain) og kan sende e-mails.
Dette vil jeg gennemgå i denne video.
Composer
I denne video skal vi også stifte bekendtskab med noget helt nyt, nemlig Composer. Composer er en slags App Store til PHP. Teknisk korrekt er Composer det man kalder et værktøj for dependency management i PHP, men sagt på godt dansk; En App Store til PHP.
Det betyder helt kort fortalt at vi med Composer kan installere Mailgun ind i på vores webhotel.
Composer indeholder i skrivende stund mere end 80.000 pakker/apps som vi kan installere, og udover Mailgun som vi installerer i denne video, har store firmaer som Facebook og Google også lavet pakker på Composer, så vi nemt kan integrere f.eks. Facebook i vores PHP-kode. Der findes også pakker til at arbejde med datoer og tid, valuta - ja selv GIF-animation.
Installation af Composer
Det er heldigvis rigtig nemt at installere Composer. Jeg viser også dette i videoen.
På Mac køres denne kommando i den mappe hvor vores webhotel ligger (vi viser i videoen hvordan man gør, trin-for-trin)
curl -sS https://getcomposer.org/installer | php
Og på Windows er der lavet en .exe-fil som man installerer.
Herefter kan man nu meget simpelt installere de apps man ønsker, ind i sin PHP-kode.
Alt dette med Composer fra start til slut, viser vi naturligvis også i videoen.
Mere viden om Composer? Der har i vores forum været nogle spørgsmål omkring Composer, der er kommet nogle uddybende svar til dette emne som du kan læse her. Har du selv spørgsmål, kan du altid oprette dem i vores forum.