Sokan botlanak bele a problémába, hogy nem tudják hogyan kell weboldalon keresztül emailt küldeni.
Az alábbiakban megpróbáljuk összeszedni a legfontosabb tudnivalókat ezzel a problémával kapcsolatban.
Kérünk mindenkit, aki érintett a problémában és úgy érzi, hogy nem tökéletes a levélküldése (nem érkezik meg minden email a címzettekhez, rosszul jelenik meg a levelezőben..) és egyéb problémák esetén figyelmesen olvassák el az alábbiakat:
Levélküldésre nálunk alapvetően a mail() használható, DE NEM AJÁNLJUK, helyette inkább a PHPMailer-t, melyről később bővebben beszélünk.
A mail() függvény borzasztóan csupasz függvény. Nagyon kevés paraméterrel beéri (címzett, tárgy, levél szövege), de emiatt nagyon rossz, hiányos struktúrájú és rossz tartalmú emaileket sikerül csak vele küldeni abban az esetben, ha csak nyersen odaadjuk az elküldendő szöveget ennek a függvénynek.
Return-path hiánya
Tengernyi problémát okoz, ha nincs meghatározva a Return-path paraméter, ami lényegében a visszapattanás emailcíme. Ha ez az érték nincs beállítva egy létező emailcímre, akkor az összes kiküldött emailünknek azon része, amely valamilyen okból kénytelen visszapattani (pl. címzettnek betelt a fiókja, címzett szervere nem elérhető, stb.) gyakorlatilag nem tud visszapattani, mert nincs hova.
Ha nincs meghatározva Return-path a küldendő emailben, az smtp szerverünk kénytelen beleilleszteni egy nem létező virtuális emailcímet, amit a php felhasználó nevéből és a szolgáltató domainnevéből állít össze.
Ez pl. így fog kinézni: enweboldalam_hu@blog.maxer.hu
Ebben az esetben nem szerzünk tudomást a kiküldött emailek sorsáról, pedig a levélküldés protkollja egyértelműen van kitalálba: Vagy eljut a címzetthez az email, vagy visszapattan a visszapattanás útvonalán (Return-path).
A tévhit szerint a feladónak pattan vissza az email. Nos ez egyáltalán nem így van. A Return-pathban megadott címre pattan vissza, ezt nagyon fontos tudnunk!
Content-type és Content-transfer-encoding hiánya
A másik legsúlyosabb hiba a helytelen kódlap használat az email tárgyában és szövegében.
Ha kódlap meghatározás, elkódolás nélkül állítjuk össze az emailt a php scriptünkben, akkor nem garantálható, hogy helyesen fog megjelenni az email szövege a címzett levelező programjában, sőt lehet, hogy el sem jut odáig, mert a legsúlyosabb struktúrális és tartalmi hibákat a spamszűrők sem díjazzák a címzett levélszerverén.
Ezért kérjük, hogy mindenki vegye figyelembe az alábbiakat:
Sok kellemetlenséget spórolunk meg magunknak és másoknak is, ha elfogadjuk azt a tényt, hogy a rosszul összeállított, hiányos fejlécű, helytelen struktúrájú, nyers, kódolás nélküli szöveget tartalmazó emailek alapvetően HIBÁSAK és ezért hírlevélküldéskor, vagy akár egy fontos üzleti levél elküldésekor nem lesz garantálható az email célba jutattása és nyomkövetése.
Csatolmányok, HTML emailek
Bonyolultabb struktúrájú, csatolmányt, beágyazott képet tartalmazó email küldéséhez mindenképpen a PHPMailert ajánljuk.
Email küldés Joomla, WordPress, Drupal és egyéb cms rendszerekből
Bármilyen cms-t, keretrendszert is használunk, nem kell túlmisztifikálni 🙂 a problémát, ezek is csak php scriptek, nincs bennük semmilyen varázslat. Amivel tisztában kell lenni, az a levélküldés módja az adott cmsben. A legtöbb cms-nek vagy saját emailküldő függvénytára van, vagy valamelyik népszerűbbet integrálta magába (pl. a PHPMailer-t).
Az adott cms admin felületén a levélküldés beállításainál kis szerencsével megtaláljuk a lényeges beállításokat. A küldési módot (ha találunk állítható kapcsolót) állítsuk mail-re, vagy sendmail-re. Semmiképpen se adjunk meg külön smtp szervert, az nem fog megfelelően működni.
Rendszerenként eltérően, vagy akár egy rendszeren belül az adott küldőkomponens/modul/plugin képességein múlik, hogy meg tudjuk-e adni az egyik legfontosabb paramétert (Return-path, vagy PHPMailer szerint elnevezés Sender). Ha ilyen paramétert nem találunk, akkor csak reménykedhetünk, hogy a script gondkoskodik annak beállításáról valamelyik másik paraméter alapján (feladó, válaszcím).
Saját küldőscripthez segítség és további tudnivalók a tudástárban:
https://control.maxer.hu/tudasbazis/E-mail/Email-kuldes-Phpmailerrel.html