Mi az a php_mail()?
A php_mail() avagy másként mail() funkció már a PHP nyelv korai verzióiban is szerepelt. Lényege annyi, hogy a PHP környezet képes legyen elektronikus levél, e-mail küldésére. Egy elég kezdetleges forma, ma már egyáltalán nem ajánlott a használata, sok hostingon alapértelmezetten kikapcsolt, tiltott.
Mi a gond vele, miért veszélyes?
A php_mail() esetében nincs azonosítás, bármely php alkalmazás, kód képes kiküldeni elektronikus leveleket. Akár támadó fél is így spammelhet a mi szerverünkről, tárhelyünkről!
Amennyiben a php_mail() engedélyezve van és olyan jellegű támadás éri a honlapunkat, hogy a támadók feltudnak PHP fájlt tölteni vagy saját kódjukat lefuttatni a támadók, úgy elkezdhetnek kéretlen reklámüzeneteket, spam-eket küldeni. Ez azért veszélyes, mert egyfelől a domain nevünk, ip címünk felkerülhet a nemzetközi spam szűrő listákra. Ha ez megtörténik, akkor könnyen előfordulhat, hogy a saját küldött leveleink a célszemély spam mappájába köt ki és így minimális az esélye, hogy megkapja, elolvassa.
Ezeken felül sok levelezőrendszer figyeli milyen módon, milyen azonosítással kerülnek kiküldésre az e-mailek és amiket php_mail() függvénnyel küldenek ki, azokat automatikusan spam kategóriába teszi és nem jut el a címzetthez.
Ha árajánlatunk, értesítőnk, hírlevelünk vagy fontos üzenetünk nem jut el a potenciális ügyfelünkhöz, akkor eleve vesztettünk, bármilyen jó is termékünk, szolgáltatásunk.
Mi a php_mail() előnye?
Az egyetlen előnye az, hogy nincs szükség a honlapunkon semmi beállítására, módosítására. A php_mail()-t szinte minden PHP alapú CMS (így a WordPress is) tudja alapként használni. Igaz, inkább azt mondanám, hogy opcionális jelleggel, amúgy már elhagyták volna legszívesebben.

Mi az a SMTP?
Az SMTP (avagy angol nevén nevezve Simple Mail Transfer Protocol) tömören azt jelenti, hogy meghatározott, (immáron biztonságos csatornán) egy levelezőszerverhez csatlakozunk és azzal küldjük ki az e-mail üzenetet azonosítást követően.
Miért jobb az SMTP?
Az SMTP-nél minden (normális tárhelyszolgáltató) esetében van lehetőség SSL/TLS titkostás használatára, továbbá van hitelesítés, tehát név és jelszó segítségével kerül azonosításra a kiküldő, hogy ki (vagy mi) akarja kiküldeni. A hitelesítéshez szükséges adatokkal pedig korlátozhatjuk, hogy idegen kód (támadás esetén) ne tudjon leveleket kiküldeni, spammelni.
Röviden összefoglalva:
- Sokkal biztonságosabb, köszönhetően a többféle azonosítási lehetőségnek. (Főleg ha a megfelelő SSL/TLS verzió és port van beállítva.)
- Használhatunk külsős e-mail küldő szolgáltatást, szervert. Így az olcsóbb tárhelyeken érvényben lévő napi kiküldhető e-mail korlátozások elkerülhetőek.
- SPAM biztosabb, kisebb eséllyel kerül a kiküldött e-mail a spam mappába.
- Stabilabb, megbízhatóbb a kiküldés, jobb a megnyitási arány.
- Tárhelyszolgáltatók is jobban preferálják.
SMTP hátrányai
Egyetlen egy hátrányt tudok csak mondani. Az pedig az, hogy be kell állítani. Ez azonban elég egyszerű, ahogy a folytatásban megismerhetjük.
WordPress honlap SMTP e-mail küldés
Ahogy fentebb megismerhettük, jobb ha WordPress weboldalunk SMTP-n keresztül küldi az e-mail üzeneteket. Például WooCommerce webáruház esetén a rendelés visszaigazolást, a kapcsolat űrlap üzenetét magunknak, ha pedig mérsékelten hírlevelezünk, akkor azt, csak néhány fontosabbat említve.
SMTP beállítása saját kóddal
Az alábbi kódot tegyük a sablonunk functions.php fájljának a végére, természetesen a megfelelő hozzáférési adatok megadásával. Reméljük Ottó nem bánja, hogy kölcsönvesszük!
SMTP beállítása bővítménnyel
Természetesen WordPress-ről lévén szó, így van több bővítmény is, amikkel beállíthatjuk az SMTP-s e-mail küldést. Azonban továbbra is személy szerint az előző, kód megoldást szívesebben ajánlom.
A domain, DNS rekordok beállítása
A fenti beállítások (vagy is az SMTP-s küldés) segít, hogy elektronikus levelünk elinduljon és el legyen küldve. A domain DNS rekordjainak megfelelő beállítása pedig azt segíti elő, hogy a kiküldött e-mail meg is érkezzen és ne kerüljön spam kategóriába. A lenti két domain rekord azt a célt szolgálja, hogy a fogadó fél, könnyebben azonosítsa, hogy valóban a feladó küldte az e-mailt és nem más, így elég fontos és alap, hogy megfelelően be legyenek állítva.
Ehhez az alábbi DNS rekordokat kell beállítani:
- DKIM
- SPF
Egy fontos tippet még a végére adnék. Ne akarjuk weboldalaink kimenő levelezését Gmail fiókunkkal végezni. Nem túl célravezető és több lesz vele a problémánk, mint sejtenénk. Használjunk inkább MailGun-t, Amazon SES-t, hogy csak kettő nagyobb nevet említsek.