Oregon 2025. július 18.

Tranzakciós e-mailek kezelése webfejlesztés közben LAMP stacken

A tranzakciós e-mailek webfejlesztésnél általában lehetnek:

  • regisztráció megerősítése
  • jelszó visszaállítása
  • vásárlási visszaigazolás
  • rendelés állapotának frissítése
  • számla, bizonylat küldése
  • rendszerértesítések (pl. sikeres belépés, új üzenet stb.)

Ezek tesztelése a legtöbb fejlesztőnek is kisebb nehézségbe ütközik. Számos kerülő megoldásnál a legegyszerűbb egy Linux felhasználó élete.

A Postfix-et be lehet állítani úgy, hogy minden email-t ugyanannak a felhasználónak küldjön el.

Postfix telepítése dpkg-val:

sudo apt install postfix

Hogy minden kimenő levél egyetlen felhasználónál landoljon, függetlenül attól, kinek szól a címzett, a legjobb és legegyszerűbb módszer Postfix-ben a recipient_canonical_maps használata.


Cél:

Minden levél (akár mail@google.com vagy akarmi@valami.hu) → átírásra kerüljön pl. youruser felhasználóra.


Lépések (Postfix konfiguráció):


1. Hozd létre a canonical fájlt:

sudo nano /etc/postfix/recipient_canonical

Tartalom:

/.*/    youruser

Ez egy regex (PCRE formátumban), ami minden e-mail címzettet youruser-ra ír át.


2. Fordítsd le a fájlt:

sudo postmap /etc/postfix/recipient_canonical

3. Állítsd be a main.cf fájlban:

sudo nano /etc/postfix/main.cf

Add hozzá (vagy módosítsd):

recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical
# recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

Ha nem engedélyezett a regexp formátum (fordítási beállítástól függ, Ubuntu 24.04-en engedélyezett), használhatod simán hash fájlként is a /etc/postfix/recipient_canonical -t, ekor a tartalma:

@               youruser

A @ wildcardként működik a hash fájloknál, de nem olyan rugalmas mint a regexp.


4. Indítsd újra a Postfixet:

sudo systemctl restart postfix

Teszteld:

echo "Teszt üzenet" | mail -s "Teszt tárgy" teszt@akarmi.hu

Majd nézd meg:

mail   # bejelentkezve youruser felhasználóként

Ha helyesen működik, a teszt@akarmi.hu levél youruser postaládájában jelenik meg.


Dovecot telepítése (IMAP szerver)

sudo apt update
sudo apt install dovecot-imapd dovecot-pop3d -y

Ellenőrizd, hogy fut:

sudo systemctl status dovecot

Roundcube telepítése

sudo apt install roundcube roundcube-core roundcube-mysql roundcube-plugins -y

Telepítés közben válaszd:

  • Apache vagy Nginx integrációját (ha kérdezi)
  • MySQL adatbázist használjon (ha kérdezi)

Roundcube elérhetővé tétele böngészőből

Ez automatikusan a következő helyen lesz:

http://localhost/roundcube

Ha külső gépről akarod elérni, nyisd meg a 80-as portot, és engedélyezd a roundcube.conf-ot webserveren belül.


Bejelentkezés

Felhasználónév: <code>youruser
Jelszó: (a <code>youruser rendszerjelszava)
IMAP szerver: localhost
SMTP: localhost (Postfix már fent van)


Összefoglalás

Lehet elsőnek kicsit soknak tűnik, de hidd egyszerűbb megcsinálni ezt az egészet, mint elolvasni ezt a blog bejegyzést.