Sziasztok fejlesztők! 💻 Biztosan sokan jártatok már úgy, hogy a localhost-on futó alkalmazásotokból szerettetek volna e-maileket küldeni, például regisztrációkor vagy jelszóemlékeztető esetén. És persze, a XAMPP-pal jön a Mercury Mail Server, ami elvileg erre lenne hivatott. De valahogy mégsem működik, ahogy kellene, igaz?
Nos, nem vagytok egyedül! A XAMPP és a Mercury közötti kapcsolat néha egy kicsit bonyolult lehet. Ebben a cikkben lépésről lépésre bemutatom, hogyan tudjátok beállítani a Mercury-t, hogy a localhost-ról végre sikeresen tudjatok leveleket küldeni. Nem kell többé a teszt e-mailek hiányától szenvedni! 😉
Miért éppen a Mercury?
Jogos a kérdés. Miért ragaszkodunk a Mercury-hoz, ha ennyi fejfájást okoz? Nos, a válasz egyszerű: a XAMPP alapértelmezetten tartalmazza. Ez azt jelenti, hogy nem kell külön telepíteni és konfigurálni egy másik levelezőszervert. Ráadásul, a Mercury Mail Server egy könnyűsúlyú megoldás, ami tökéletesen megfelel a fejlesztési környezetünk igényeinek.
Én személy szerint is sokáig küzdöttem a Mercury-val, de miután rájöttem a beállítások finomságaira, azóta hű társam a lokális fejlesztés során. Persze, vannak alternatívák, mint például a Mailtrap vagy az SMTP szolgáltatók, de a Mercury egyszerűsége és integráltsága miatt sokszor a legjobb választás.
A beállítás lépései – A siker receptje
-
A Mercury konfigurálása
Először is, indítsuk el a Mercury Mail Server-t a XAMPP Control Panel-ből. Ha elindult, kattintsunk a tálcán lévő ikonjára (egy kis boríték), és válasszuk a „MercuryPB” lehetőséget.
Itt találjuk a beállításokat. A legfontosabbak a következők:
- General Settings: Itt állítsuk be a „Listen on all interfaces” opciót. Ez biztosítja, hogy a Mercury fogadja a kapcsolatokat a localhost-ról.
- SMTP Server: Ellenőrizzük, hogy a port 25 legyen beállítva. Ha más program használja ezt a portot (például egy másik levelezőszerver), akkor változtassuk meg.
- Connection Control: Itt engedélyezhetjük a „Relay to any address” opciót a lokális teszteléshez. Figyelem: Éles környezetben soha ne engedélyezzük ezt, mert spamküldésre használhatják!
Mentés után indítsuk újra a Mercury-t, hogy a változások életbe lépjenek.
-
A php.ini konfigurálása
Most a php.ini fájlt kell szerkesztenünk. Ezt a XAMPP Control Panel-ből is elérhetjük a PHP sorában lévő „Config” gombra kattintva, majd kiválasztva a „PHP (php.ini)” opciót.
Keressük meg a
[mail function]
szekciót, és állítsuk be a következőket:; For Win32 only. SMTP = localhost smtp_port = 25 ; For all systems. You may have to configure your server correctly to use mail(). sendmail_path = ""C:xamppsendmailsendmail.exe" -t"
Fontos: A
sendmail_path
beállításnál ügyeljünk arra, hogy a helyes elérési utat adjuk meg a sendmail.exe fájlhoz. Ez a XAMPP telepítési könyvtárában található.Mentés után indítsuk újra az Apache szervert, hogy a változások életbe lépjenek.
-
A sendmail.ini konfigurálása
A sendmail.ini fájlt is szerkesztenünk kell. Ez a
C:xamppsendmail
könyvtárban található.Állítsuk be a következőket:
[sendmail] smtp_server=localhost smtp_port=25 auth_username= auth_password= [email protected]
A
force_sender
beállításnál megadhatunk egy alapértelmezett feladót, ha a PHP kódban nem adunk meg külön feladót. Ez hasznos lehet teszteléshez.Mentés után nincs szükség újraindításra.
-
Tesztelés!
Most már készen állunk a tesztelésre! Hozzunk létre egy egyszerű PHP fájlt, például
testmail.php
-t, és helyezzük el ahtdocs
könyvtárban.<?php $to = '[email protected]'; $subject = 'Teszt e-mail'; $message = 'Ez egy teszt e-mail a localhostról!'; $headers = 'From: [email protected]' . "rn" . 'Reply-To: [email protected]' . "rn" . 'X-Mailer: PHP/' . phpversion(); $success = mail($to, $subject, $message, $headers); if ($success) { echo '<p>Az e-mail sikeresen elküldve!</p>'; } else { echo '<p>Hiba történt az e-mail küldése során!</p>'; } ?>
Nyissuk meg a böngészőben a
http://localhost/testmail.php
címet. Ha minden jól megy, akkor egy „Az e-mail sikeresen elküldve!” üzenetet kell látnunk.A Mercury felületén ellenőrizhetjük, hogy az e-mail megérkezett-e a „Local queue” fülön.
Problémamegoldás – Ha valami nem stimmel
Ha a teszt e-mail nem érkezik meg, akkor nézzük át a következőket:
- Ellenőrizzük, hogy a Mercury és az Apache fut-e.
- Ellenőrizzük a php.ini és a sendmail.ini fájlok beállításait.
- Ellenőrizzük a tűzfal beállításait, hogy a Mercury és az Apache kommunikálhasson.
- Nézzük meg a Mercury log fájljait, hátha találunk valamilyen hibát.
„Ne add fel! A kitartás meghozza gyümölcsét. 😉”
Végszó – Sikeres e-mail küldés a localhostról!
Remélem, ez a cikk segített nektek beállítani a Mercury Mail Server-t a XAMPP-ban, és most már ti is sikeresen tudtok leveleket küldeni a localhost-ról. Ne feledjétek, a fejlesztés néha rögös út, de a sikerélmény mindenért kárpótol!
Sok sikert a kódoláshoz! 👋