SwiftMailer 3 leírás

Az alábbi kivonatos í­rás a SwiftMailer 3.x verzióhoz használható. Jelen pillanatban a 3.2.2 a legfrissebb. Az alábbiakban nem törekszem a teljességre, de szeretném idővel minél tökéletesebbé tenni.

A SwiftMailer egy teljes mértékben objektum orientált levélküldő php-hez, mely nem a php mail() függvényére támaszkodik, hanem közvetlenül kommunikál az SMTP szerverrel. A program minden része objektumokból épül fel, ezért maximálisan testre szabható, bőví­thető. Emellett tapasztalataim szerint nagyon gyors, és abszolut megbí­zható (jobb,mint a PHPMailer).

Külön változat van php4 és php5-höz, töltsd le a neked megfelelő phphoz való változatot. A zipben a lib/ a minket leginkább érdeklő mappa.

Új levél létrehozás:

Az új levélküldőnek meg kell adnunk egy kapcsolatot is, amely lehet: SMTP, Sendmail, NativeMail, … Én az SMTP-t fogom használni.

$connection =& new Swift_Connection_SMTP($host, $port);

A $host-ot mindenképpen meg kell adnunk (ez általában localhost), a port opcionális. Ezután létrehozhatjuk az új levélküldőt:

$mail =& new Swift($connection);

vagy

$mail =& new Swift(new Swift_Connection_SMTP($host, $port));

Ezután már küldhetjük is a levelet:

$mail->send($message, cí­mzettek…);

Miután végeztünk a küldéssel le kell zárnunk a kapcsolatot:

$mail->disconnect();

A send() paraméterei:

Cí­mzettek:
Kezdjük a rövidebbel: a cí­mzettek. A cí­mzett(ek)et egyszerű felsorolással adhatjuk meg két módon:

  • egyszerű string literál az email cí­mmel
  • használhatjuk a Swift_Address() objektumot: Swift_Address($email [, $name])

Ha több cí­mzettet szeretnénk kezelni, akkor elgondolkozhatunk a Swift_RecipientList() használatán.

$recipients =& new Swift_RecipientList();
$recipients->addTo($email [, $name]);
$recipients->addCc($email [, $name]);
$recipients->addBcc($email [, $name]);

$mail->send($message, $recipients, további_cí­mzettek…)

Az üzenet:
Elérkeztünk a legfontosabb részhez. A swift külön message objektumot kí­nál a probléma megoldására:

$message =& new Swift_Message([title, body]);

Személyszerint én csak a cí­met szoktam megadni, a többire sokkal jobb eszközeink vannak.

Szövegtörzs (és bármilyen más elem) hozzáadása: (ki hinné, hogy ennyire egyszerű?)

$message->attach(new Swift_Message_Part(szöveg));

Melléklet hozzáadása:

$message->attach(new Swift_Message_Attachment(…));

A Swift_Message_Attachment(file_content, file_name, mime_type) paraméterei:

Swift_Message_Attachment(file_content, file_name, mime_type)

  • file_content: a file tartalma (pl. file_get_contents() függvénnyel beolvasva)
  • file_name: az a név, amellyel csatolni szeretnénk a levélhez
  • mime_type: a melléklet mime tí­pusa

vagy

Swift_Message_Attachment(new Swift_File(full_path_to_file))

A Swift_File() nagy előnye, hogy pusztán a file teljes elérési útját kell megadni, a többit az objektum intézi. Az előző metódussal szemben, ez nem rántja be a file teljes tartalmát a memóriába, csak akkor használja fel azt, amikor a levelet véglegesen(?) összeállí­tja.
Kép beágyazása:
Rendkí­vül egyszerű, PHPMailer-esek figyeljenek:🙂

$message->attach(new Swift_Message_Image(new Swift_File(full_path_to_file)));

Ennek a módszernek a nagy előnye, hogy a fenti sor egy azonosí­tót ad vissza, amellyel a levélben a képre hivatkozhatunk. Tehát a tényleges használata:

$img = $message->attach(new Swift_Message_Image(…));
<img src=”$img” alt=”” />

És kész.

A fenti í­rás csak egy rövid összefoglaló, nem teljes és nem helyettesí­theti a hivatalos tutorialt és api leí­rást.

Itt csak a levélküldésre tértem ki, de a rendszer nagyon könnyen és szépen bőví­thető, testre szabható. Plugin hozzáadásval és Swift_Plugin_Decorator használatával például személyreszabott levél is küldhető, nem kell törődnünk vele, pusztán a csere szövegeket kell megadni és a többit a program intézi. Arról nem is beszélve, hogy saját igényeknek megfelelő pluginokkal a határ a csillagos ég.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s