Körű utasítások php mailer - sesmik cms online áruház kulcsrakész

Szabványos e-mail - ez sima szöveget, amelyet használnak a legtöbb fejlesztő, így teremt a MIME fejléc HTML e-maileket lehet egy bonyolult folyamat. Most nem fog semmilyen nehézséget, mert van egy csodálatos könyvtár PHPMailer, ami ráadásul ingyenes.

Ebben a leckében fogunk részletesen megvitassák a tulajdonságait és képességeit ebben a könyvtárban.

követelmények

Követelmények ebben a könyvtárban nagyon szerény. Csak akkor kell a PHP és a képesség, hogy küldjön e-mailt jelent mail () paranccsal vagy egy SMTP kapcsolatot.

Továbbá, meg kell érteni az alapokat az objektum-orientált programozás (OOP), vagy legalábbis, hogy megértsük, hogyan kell alkalmazni ezeket a következő példákban.

Ne aggódj! Ez természetesen nagyon egyszerű!

Mintegy PHPMailer

Mit lehet PHPMailer

Abban az időben az írás e képzés PHP Mailer volt képes:

A fejlesztők PHPMailer

  • Brent R. Matzelle
  • patrice Fournier
  • chris Ryan
  • cem Hurturk
  • tom Klingenberg
  • jaime Bozza

Szeretném kifejezni hálámat ezeket az embereket, mert olyan sokat tettek, hogy gyorsítsák fel az én projektek, ideértve PHPFreaks.com!

Mi készül használni PHPMailer

Töltse le és csomagolja

Most, hogy az összes fájl a helyén, hozzunk létre egy konfigurációs fájlt a projektünk.

Létrehozása és használata a konfigurációs fájl

Az egyik legfontosabb dolog, amit szeretek csinálni létrehozása előtt a helyszínen -, hogy írjon a konfigurációs fájlban, hogy mit fog tartalmazni a beállításokat, amelyek talán fogok hivatkozni sokszor. És igen, én hozzon létre egy fájlt config.php néven /home/mywebsite/public_html/config.php. Vnem létrehozunk egy tömböt, melynek neve $ helyszínen a kulcsokat és értékeket, amit majd használni a jövőben. Ebben a tutorial fogom leírni változók fogjuk használni az osztályban PHPMailer. Íme egy példa az én config.php file:

Ez a példa nagyon egyszerű megmagyarázni. Ezután mi továbbra is a munka, és mi megtesszük ezeket a beállításokat, ha szükséges.

Hozzon létre egy osztályt, amely kiterjeszti PHPMailer

Azonnal hangsúlyozom, hogy létre kell hozni egy kiterjesztés osztály, akkor egyszerűbbé az életét, akkor én megmutatom, hogyan.

E paraméterek mindegyikénél vesszük alapértelmezés szerint a config.php fájlt. de akkor is felülírhatja, ha hívja a kiterjesztés osztály. Így, ha nem felülírja bármelyik beállítást a kiterjesztés osztály, akkor kell venni a defaul config.php fájlt. és akkor nem kell minden egyes alkalommal, hogy felülírják ezeket a beállításokat. Ez a szépsége ennek a megközelítésnek!

Vegyünk egy pillantást a kiterjesztés osztály:

Ezután nézd meg a kódot.

Nézzük meg az osztály FreakMailer

A osztály, a fentiekből kiderül, nagyon egyszerű. És csak akkor kell egy alapvető OOP ismeretek használni. Nézzünk szembe a tényekkel.

Először meg kell csatlakoztatni a PHPMailer osztály (class.phpmailer.php fájlt a lib könyvtárban). Ez lehetővé teszi számunkra, hogy meghosszabbítja az osztály PHPMailer, mert ez teszi a tárgy áll rendelkezésre. Lehet dugja be máshol, de itt ez a leghatékonyabb.

A szerkezet a osztály kontroll

Ezután meghatározzuk az osztály szerkezetét az irányítási és adjon meg egy nevet a kiterjesztése az osztály PHPMailer.

osztály változók

Menj előre. Most határozzuk meg a belső változók. Legtöbbjük beállítva defaul NULL. úgy, hogy később mi is felülírja őket, ha szükség van, hogy cserélje ki az értékeket beállítani config.php.

Nézzük ezeket a változókat:

Meghatározása után a változók, meg tudjuk beszélni veled FreakMailer () függvénnyel.

FreakMailer () funkció

Ez a funkció elsősorban meghatározza a kezdeti értékeket az osztály PHPMailer, levelet küldeni.

Először is, hívjuk a $ helyén tömb a config.php fájlt. hogy képes legyen használni az adott funkciót és az osztály. Ehhez kétféle módon: át egy tömb, amikor telefonál, hogy egy sor osztály vagy globális. Az utóbbi módszer a legegyszerűbb, és működik, tehát azt, és használja!

Minden további intézkedések - ez elsősorban a meghatározása értékek változók osztály PHPMailer. Ha a belső változó ($ this-> beállítás) nincs definiálva, vesszük értékeket a config.php fájlt. Már említettem, hogy felül tudja írni az értékeket config.php. Itt nézd meg.

A legfontosabb dolog, amit meg kell érteni, hogy minden PHPMailer lehetőségeket is jelen vannak, és lehet használni, annak ellenére, hogy bővítette. Az egyetlen dolog, hogy mi volt itt - létrehozott egy kiterjesztés, amely garantálja, hogy nem kell minden egyes alkalommal be egy és ugyanazon adatokat, ha azt akarjuk, hogy küldjön egy üzenetet.

Most, hogy kellő ismeretekkel rendelkezik az kiterjesztés osztály, nézzük meg, hogy e-mailt küldeni!

küldésére PHPMailer eszközök

Az előzetes munkát, és most már minden küldeni leveleket jelenti PHPMailer.

kezdeti vizsgálati

Ez a teszt nagyon fontos, mert ebben a cikkben mi mindig vissza fog térni, hogy a kód itt megadott. Ha a kód van nem működik, újra olvasni az anyagot először, majd próbálja újra. Az első példában fogjuk tartani mailtest.php fájlt. amely kerül a gyökér a projekthez. Itt vannak a tartalma:

Nézzük meg a kódot a jobb megértését is.

Először csatlakoztassa a konfigurációs fájlban annak érdekében, hogy hozzáférjenek a tömb $ oldalon.

Ezután csatlakoztassa FreakMailer osztályban.

Most kell inicializálni a kiterjesztés osztály és az osztály PHPMailer.

PHPMailer most már készen áll, és megyünk tovább.

Ha a levelet, mint sima szöveg, meg kell osztani a vonal vagy. És meg kell használni dupla idézőjelek meghatározásakor a változó $ mailer-> Body. Ha egyszerű idézőjeleket, a szöveg tördelése az egyik vonalról a másikra lehet a kulcs.

Ezután küld egy üzenetet, és kezeli a hibákat, ha van ilyen.

A hiba esetén - akkor megjelenik a „Nem sikerült elküldeni a levelet!”, Ellenkező esetben - „Letter elküldve!”.

Ha éppen most kaptam egy üzenetet, hogy te küldtél segítségével PHPMailer, - gratulálok!

A fő probléma

Itt van egy lista néhány (általában) a problémákat, hogy lehet, hogy ha küld mailt PHPMailer (valószínűleg ezek a problémák merültek fel, és lenne a szokásos adagolás a betűk):

  • a gépen nincs telepítve, vagy nem fut semmilyen SMTP szerver;
  • hibás beállítások belül PHP script, olvassa képzés ismét
  • Apache szerver nem engedélyezi átmosás keresztül SMTP szerver a helyi gépen (ez a tipikus eset);
  • ha nem helyesen azonosítani a leveleket a címzett.

De, ha van munka, menjünk tovább a levélküldés különleges tulajdonságokkal.

A fejlett funkciók PHPMailer

Ha már itt van, de nem tudják olvasni az előző anyag - vissza, és olvasd el, mert itt fogunk foglalkozni a terjeszkedés a bázis példa.

Ne feledje, hogy támaszkodunk az alapvető fenti példában.

Ha nem adja meg FROMNAME, a legtöbb e-mail kliensek helyettesíteni fogja a nevét E-mail.

Hozzáadása több címzettnek

Ez a módszer lehetővé teszi, hogy adjunk több címzettnek a levél. Én nem ajánlom ezt a módszert névtelen levelezési listák. Lásd a példa később terjesztési listát.

Add címzettek pontos másolatot (CC)

Felveheti címzettek replika pontosan ugyanúgy, mint az előző példák segítségével AddCC funkciót.

Hozzáadása címzetteket pontos másolata (BCC)

Láthatatlan BCC címzett vagy adhatunk a következő függvény:

Az a követelmény, megerősítését olvasás

Ha azt szeretnénk, hogy kérje az ember elolvassa a levelet, olvassa megerősítést, küldje el a következő parancsot:

Levelezni vvide HTML PHP és PHPMailer

Képződése HTML e-maileket - ez az egyik legnehezebb feladat, ha e-mail küldése a PHP. Beállítása MIME fejléceket és épít HTML - nem könnyű feladat, és kiegészítő tudást és a kutatás. Azonban PHPMailer teszi az életét, akkor azt fogja mutatni, hogy hogyan hajtják végre.

Fontos tudnivaló az e-mail vvide HTML

Mielőtt tovább a küldő ilyen levél, szeretném, ha megértjük, hogy fontos tudni, hogyan kell csatlakoztatni a képeket és a CSS, stb Egy egyszerű szabály az, hogy tárolja ezeket a fájlokat a szerveren, és egy levelet, hogy teljes referencia. Ha megy tarisznya és ezeket a fájlokat hozzá a levél, akkor készülj fel a fejem. Például, az én üzenetem a test így néz ki:

Mint látható, csináltam egy teljes URL helyett csökkentett én dokumentumban. Ha nem, akkor a képek nem lesznek betöltve, és a felhasználó nem fogja látni őket!

Rajta, most kell küldeni a levelet. Ehhez meg kell határozni azokat a test levelünk és kérjen isHTML beállításokat. A következő példa kiterjeszti az alapvető kiindulási példa.

Extra „test” betűk

Soha ne hagyatkozzunk kizárólag a HTML, amikor e-mail küldése, ha az üzenet nagyon fontos. Meg kell vigyázni a címzettet, és amellett, hogy a HTML e-mail, és csatolja csak szöveges (csak szöveg) változata az üzenet, mint néhány e-mail kliensek nem tudja megjeleníteni HTML e-maileket. Mi lehet elérni ezt a hatást, hogy extra betűket a szervezet működésében AltBody osztály PHPMailer. Adjunk hozzá egy szöveges változata az üzenetet. Amint adjunk hozzá néhány betűjét szervek - PHPMailer automatikusan generálja többrétegű mailt.

Fájlok csatolása a levél

AddAttachment funkció 4 érvek:

A fájl elérési útvonalát, természetesen, a teljes elérési útját a fájl a lemezen, a fájl neve - a fájl nevét csatolni kívánt kódoló - defaul base64, főcím típus - az a típusú fejlécet elküldeni kívánt - defaul - Alkalmazás / octet-stream.

Mint látható, minden nagyon egyszerű! Menjünk használni az SMTP.

Egy külső (saját) SMTP mail PHP segítségével

Először is, hadd beszélje a egy külső helyett a helyi SMTP. Az alap például mi történik config.php. amely bizonyos beállításokat a SMTP szerver. Ha azt szeretnénk, hogy adjunk több SMTP szerverek - megteheti azt is bővült a config.php. beállítás $ site [ 'smtp_enabled'] = 'bekapcsolva'; (Inkluzív).

A $ site [ „smtp_host”] akkor bővíteni a listát a SMTP szerverek, elválasztva őket pontosvesszővel. Például:

Ahogy értem, igyekszem PHPMailer levelet küldeni a szerveren keresztül az első, ha ez nem sikerül - a második, és így tovább.

Fontos, hogy felhívja a figyelmet, hogy az e-mail küldése SMTP nem kell használni a standard Send () függvényt. és SMTPSend () függvény. Például:

Problémák küldő SMTP

Rengeteg változata van a hiba, ha az SMTP, alapvetően mindannyian kapcsolódnak a hozzáférési jogok:

Qmail és Sendmail

Ha azt szeretnénk, hogy megkerülje a függvény mail () a PHP és használ egy bináris programot mail, meg kell állapítanunk, hogy milyen típusú e-mail szerver, majd PHPMailer Run bináris fájl, amely talán egy kicsit felgyorsítja a műveletet. például:

Egy példa a levelezési lista

Elemzés a terjesztési lista kód

Az első rész az ugyanaz, mint az első példában - azt csatlakoztatni a szükséges fájlokat.

Megjegyzés: a feltételes tag. Később, amikor egy művelet végrehajtásához a ciklusban str_replace () parancs mi váltja ezt a címkét a felhasználó nevét az adatbázisból.

Következő, inicializálja az osztály dolgozni e-mailben.

Most már elérte azt a pontot, ahol van egy közvetlen hivatkozás címét. Rendkívül fontos, hogy megértsük, hogy itt vagyunk a vállalkozások számára. Az első rész a kód főként részt vesz a kialakulását a változó $ MEMBER_NAME. amely tartalmazza az összes adatot az aktuális felhasználó.

A következő rész a kód határozza meg a felhasználó beállításait - HTML vagy sima szöveges. Ha a felhasználó inkább HTML, akkor küldünk neki egy levelet vvide HTML-alapú szöveges szerve a levelet. Ellenkező esetben - küldünk egy csak szöveges változata.

Alaposan fontolja meg a fenti szövegben, amíg el nem éri a teljes megértéséhez. Minden szükséges információt ez volt a korábbi részek anyagunk.

Összefoglalva

A képzés ad egy jó lökést, hogy az élet könnyebb, ha dolgozik, e-mail. És mindez - a kiemelkedő PHPMailer könyvtárban. Most elküldheti mail nezadumyvayas körülbelül címek és egyéb nehézségek.

Ha beállítja ezt az osztályt rendesen, majd később, amikor létrehoz más oldalakon, akkor nem kell pazarolja az idejét.