Hvis du har din Ubuntu server med LAMP installeret, så har du måske bemærket at din web applikation(hjemmeside) ikke kan afsende emails. LAMP er en samling af applikationer til Linux og står for Linux Apache MySQL og PHP. Som navnet siger indeholder LAMP applikations pakken ikke en SMTP server. Det vil derfor ikke være muligt at afsende mail direkte fra dine hjemmeside.
Der findes mange forskellige former for mail services i Linux og de kan alle sammen noget forskelligt. Det er derfor vigtigt først hvilken form for mail server man ønsker. Du kan finde en komplet liste over mail servers på Wikipedia.
I denne vejledning fokuserer vi på at opsætte PostFix, så det kan fungere som SMTP server for apache og PHP. Denne artikel gennemgår derfor ikke opsætning af bruger kontoer og mailbokse i PostFix. I dette tilfælde skal vi bare have web serveren til at supporterer mail afsendelse. Det skyldes at vores mail-server er hostet et andet sted.
Opsætning af Postfix
Krav: for at kunne opsætte PostFix kræver det at du har rettigheder til at installer på din linux web server og at du har LAMP installeret. Hvis du ikke har LAMP installeret, så følg venligst vores seneste vejledning for installation af LAMP
- Opret forbindelse til din linux server (Evt. via Putty)
- Log ind på serveren
- Skriv kommandoen sudo apt-get update og tryk Enter (forsæt til næste punkt, efter opdateringen er fuldført)
- Skriv kommandoen sudo apt-get install postfix
- Vælg derefter Internet Site
- Indtast FQDN (Det fulde domænenavn)
FQDN er det fulde domæne navn som for eksempel: vislo.dk. Det kan også være et sub domæne som, mail.vislo.dk.
Konfigurerer PHP for PostFix
Da PHP.ini mail function som standard ikke pejer på PostFix, skal dette først tilføjes i filen, før mail funktionen vil virke.
- Rediger filen /etc/php5/apache2/php.ini
Du har mulighed for at ændre php.ini filen via SSH eller via FTP.
SSH: Skriv kommandoen sudo nano /etc/php5/apache2/php.ini og tryk ændre for at ændre filen. - Søg efter Mail function i php.ini filen(søgning via CTRL +F)
- Under mail function, find og uncomment sendmail_from = og linjen sendmail_path =
- Sendmail_from tilføj den ønskede afsender email udfor = tegnet.
- Sendmail_path kopier og indsæt postfix -t –i efter = tegnet.
- Gem filen og upload filen, hvis nødvendigt.
Så er PostFix installeret og konfiguret. Apache og php5 er konfigureret til at benytte PostFix. Hvilket vil sige at din web applikation faktisk kan benyttes til at afsende emails. Der virker også blandet andet også i WordPress, Joomla osv.
Men som vi tidligere nævnte, har vi i dette eksempel vores mail database og bruger hostet en andet sted, men på samme domænenavn. Der er derfor vigtigt at fortælle PostFix at den ikke er final destination for FQDN.
Det kræver måske en forklaring!?. Hvis du for eksempel har hjemmesiden kaldet, hjemmeside1.dk som ligger placeret på en linux server, og sammentid har du ekstern mail-server du benytter for samme domæne navn. Standard PostFix konfigurationen vil give problemer hvis du har en opsætning som beskrevet herovre. Problemet ligger i at PostFix mail-server ser sig selv som final destination for alle e-mails der bliver sendt til vislo.dk. Det er derfor nødvendigt at konfigurer og slette domænenavnet som final destination, hvis du ønsker at din web-server kan sende emails til din eksterne mail-server.
Konfigurer PostFix
Herunder sletter vi domænenavnet fra listen over final destination. Benyt SSH for at udføre nedenstående:
- Indtast kommandoen sudo dpkg-reconfigure postfix
- Skip til listen over final destination
- Slet dit domænenavn fra listen og tryk enter
Genstart apache og postfix servicen
Udfør kommandoen sudo service postfix restart og udfør derefter kommandoen sudo service apache2 restart
Test simpel email via PHP
Her kan du teste om postfix og apache er konfigureret rigtigt ved at udføre en simpel mail via php.
- Opret ny fil på web-serveren kaldet: testmail.php
- Kopier nedenstående script og indsæt det i testmail.php filen.
- Tilpas scriptet med dine egen mail adresse og besked.
- Gem filen på web serveren
- <?php
- ini_set( ‘display_errors’, 1 );
- error_reporting( E_ALL );
- $from = “emailtest@YOURDOMAIN“;
- $to = “DINMAILADRESSE“;
- $subject = “Email via PHP“;
- $message = “Dette er en test!“;
- $headers = “From:” . $from;
- mail($to,$subject,$message, $headers);
- echo “Test mail sendt”;
- ?>
- Åben derefter testmail.php via din browser for at afsende beskeden.
- Valider at du har modtaget den afsendte email.
Lykkes det? J. Jeg håber det kunne bruges til lidt inspiration.
Læg en kommentar