Codeigniter HTML Email küldése

#codeigniter #php #mvc #email #html #html-email

Codeigniter HTML Email küldése

Figyelem!

Úgy tűnik, hogy jelenleg egy olyan cikket böngészel ami több mint két éve készült. A technológia világában ez nagyon sok idő és azóta már sokkal jobb megoldások is lehetnek, mint amit ebben a cikkben olvashatsz. Így azt tanácsolom keress egy frissebb cikket ebben a témában.

Milyen is lenne egy modern weboldal HTML email küldés nélkül, ezért nézzük meg hogyan is kell csinálni ezt Codeigniter-ben.

Tapasztaltam már olyan megoldásokat, hogy a controller-ben hardkódolva voltak ezek a levelek, de ez nem a helyes út. Ahelyett, hogy mindenféle hekkel érnénk el a HTML levelünk küldését, egyszerűen hívjuk meg egy view-ból.

Mielőtt email küldenénk tanulmányozzuk át az Email Class lehetőségeit.

Gyakorlatban

HTML email küldéséhez át kell állítanunk a default mailtype configját text-ről html-re.

$config['mailtype'] = 'html';

A karakterkészletet is érdemes beállítani, habár alapértelmezett értéke is UTF-8. Ha mást használunk mint például ISO-8859-2, akkor adjuk meg azt az értéket neki.

$config['charset'] = 'utf-8';

A configot persze az alábbi módokon engedélyeznünk kell.

$this->load->library('email', $config);

vagy

$this->email->initialize($config);

Most következik a lényeg, hívjuk meg view-ból az elmentett levelünket. Bármilyen változót továbbadhatunk neki az alábbi módokon.

// betöltjük a viewt egy változóba
$uzenet=$this->load->view('email',$adat,true);

// a változót illesszük be az email helyére
$this->email->message($uzenet);

Vagy a rövidebb megoldás.

$this->email->message($this->load->view('email',$adat,true));
// ahol az $adat tartalmazza a view-hoz tartozó értékeket

Megfigyelhetitek, hogy a harmadik paramétert TRUE értékre állítottam. Ilyenkor a nézet betöltése nem a böngésző felé (az output class-nak) küldi a view-t, hanem csak a benne lévő adatokat töltjük be.

Ha problémába ütköznénk, akkor használjuk a beépített debuggert a hiba megkeresésére.

echo $this->email->print_debugger();

Persze el ne felejtsük eltávolítani levelünkből a relatív hivatkozásokat és optimalizálni a használt megjelenést, de ezt persze már egyéni preferenciáink szerint alakíthatjuk.

További tartalmak