Mailpit
A Mailpit egy helyi levélelkapó: SMTP-szerverként fogadja a leveleket, és webes felületen mutatja őket, így a WordPress levelei nem érnek el valódi címzettet.
This content is not available in your language yet.
A Mailpit egy kis SMTP-szerver, webes felülettel és API-val. Minden levelet elfog, amit hozzá küldenek, eltárolja, és megmutatja a böngészőben. Fejlesztésnél ezért ideális: a WordPress wp_mail() hívásai kimehetnek, de valódi vásárlóhoz egyetlen levél sem jut el. Tipikus felhasználás a WooCommerce rendelési leveleinek kipróbálása.
Telepítés
Szekció neve “Telepítés”Alapértelmezésben a webes felület és az API a 8025-ös, az SMTP a 1025-ös porton figyel.
macOS-en Homebrew-val:
brew install mailpitbrew services start mailpitLinuxon és macOS-en a telepítő szkripttel (a /usr/local/bin/mailpit helyre kerül):
sudo sh < <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh)Dockerrel:
docker run -d \ --restart unless-stopped \ --name=mailpit \ -p 8025:8025 \ -p 1025:1025 \ axllent/mailpitHa a levelek nem tűnhetnek el a leállítással, adj meg adatbázisfájlt. Enélkül a Mailpit ideiglenes fájlt használ, amit kilépéskor töröl.
Indítás és beállítás
Szekció neve “Indítás és beállítás”A telepítés után a mailpit paranccsal indítod. Ezután a http://localhost:8025 címen nyílik a felület.
A legfontosabb beállítások kapcsolóval vagy környezeti változóval adhatók meg:
| Kapcsoló | Környezeti változó | Alapérték | Mit csinál |
|---|---|---|---|
--listen |
MP_UI_BIND_ADDR |
0.0.0.0:8025 |
a webes felület és az API címe |
--smtp |
MP_SMTP_BIND_ADDR |
0.0.0.0:1025 |
az SMTP címe |
--database |
MP_DATABASE |
ideiglenes fájl | tartós adatbázisfájl |
--max |
MP_MAX_MESSAGES |
500 |
a tárolt levelek maximuma, a régebbieket törli. A 0 kikapcsolja a törlést. |
Példa: csak a saját gépedről érhető el, és megmaradnak a levelek.
mailpit --listen 127.0.0.1:8025 --smtp 127.0.0.1:1025 --database ./mailpit.dbA WordPress bekötése
Szekció neve “A WordPress bekötése”A WordPress a wp_mail() függvénnyel küld, ami belül a PHPMailer osztályt használja. A phpmailer_init akció a PHPMailer előkészítése után fut le, és referenciaként átadja a példányt. Itt átállíthatod SMTP-re, és a Mailpitre irányíthatod.
Tedd a kódot must-use bővítménybe. A mu-plugin minden betöltéskor aktív, nem kapcsolható ki a felületről, és csak a mu-plugins mappa közvetlen PHP-fájljait tölti be a WordPress. Alapértelmezett helye a wp-content/mu-plugins, Bedrockban a web/app/mu-plugins.
<?php/** * Plugin Name: Mailpit * Description: A helyi levelek a Mailpitbe mennek. */
add_action( 'phpmailer_init', function ( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = 'localhost'; $phpmailer->Port = 1025; $phpmailer->SMTPAuth = false;} );A Host, Port, SMTPAuth és isSMTP() ugyanazok a PHPMailer-tulajdonságok, mint a WordPress doksi SMTP-példájában. Ha a Mailpit másik gépen vagy konténerben fut, a Host értéke legyen annak a neve vagy címe.
Ha a kód csak fejlesztői környezetben fusson, tedd feltételhez. Bedrockban az WP_ENV állandó erre való:
if ( defined( 'WP_ENV' ) && 'development' !== WP_ENV ) { return;}Próbálj ki egy levelet WP-CLI-vel:
Ha a válasz bool(true), a levélnek meg kell jelennie a Mailpit felületén.
DDEV és Local
Szekció neve “DDEV és Local”Ha DDEV-et vagy Localt használsz, nem kell saját Mailpitet telepítened és a fenti kódot sem kell megírnod.
- A DDEV a helyi oldalról küldött leveleket a beépített Mailpitben fogja meg. Megnyitni:
ddev launch -mvagyddev mailpit. - A Local szintén Mailpitet használ. A leveleket a Tools → Mailpit → Open Mailpit gombbal nézheted meg.
WooCommerce rendelési levelek kipróbálása
Szekció neve “WooCommerce rendelési levelek kipróbálása”Ha a Mailpit fut és a WordPress rá van kötve:
- Adj le tesztrendelést a webshopban.
- Nyisd meg a Mailpit felületét (
http://localhost:8025). - Nézd meg a rendelés visszaigazolását és az adminnak szóló értesítést: tárgyat, feladót, címzettet, a levél megjelenését.
- Állítsd át a rendelés állapotát az adminban, és ellenőrizd a következő levelet is.
A felületen a leveleket HTML és szöveges nézetben is látod, a fejlécekkel együtt. Így kiderül, ha a sablon felülírása elrontotta a levél kinézetét, vagy rossz a feladó címe.
A Mailpit REST API-ja a /api/v1/ útvonalon érhető el, a dokumentációja a futó példányon is megnyílik: http://localhost:8025/api/v1/. Az útvonalak között van levéllista (/api/v1/messages), egy levél lekérése (/api/v1/message/{ID}), keresés (/api/v1/search) és törlés. Automatizált tesztből így ellenőrizheted, hogy kiment-e a levél.
curl http://localhost:8025/api/v1/messagesA paraméterekért és a válasz szerkezetéért nézd a hivatalos API-dokumentációt.
Mire figyelj
Szekció neve “Mire figyelj”- A Mailpit fejlesztői eszköz. Éles oldalon ne használd, mert a leveleket nem a címzettnek kézbesíti.
- Ne tedd elérhetővé az internetről: a leveleid érzékeny adatot tartalmazhatnak. Fejlesztői gépen a
127.0.0.1címre köthetsz. - Az ideiglenes adatbázis kilépéskor törlődik. Tartós tároláshoz add meg a
--databasekapcsolót. - Az elfogott leveleket a Mailpit alapból legfeljebb 500-ig tárolja.
Hasznos linkek
Szekció neve “Hasznos linkek”Published: