ugrás a tartalomhoz

SWIFTMAILER egyedi szöveg - megszólítás

simisoma · 2010. Okt. 27. (Sze), 07.07
Sziasztok!

Lenne egy olyan kérdésem, hogy én a hírlevelek kiküldéséhet a SwiftMailer-t használom és batchSend -el küldöm ki.

Na ezzel az a problémám, hogy így mindenki ugyanazt a levelet kapja, én pedig szeretném kicsit személyessé tenni. Elejére egy megszólítást végére egy leiratkozást.

pl.:
-------------------------------------------------------------------------------
Kedves Nagy Géza! [Mindenkinek a saját neve]

hírlevél szövege.... ez megy mindenkinek...

Leiratkozáshoz ide kattints: http://www.weblap.hu?leiratkozas.php&email=valami##kukac##akarki.hu [Mindenkinek a saját email címe]

-------------------------------------------------------------------------------

Köszi: SimiSoma

Mi erre a megoldás???
 
1

Nem ismerem a swiftmailert,

neogee · 2010. Okt. 27. (Sze), 14.57
Nem ismerem a swiftmailert, de ahogy látom küldés előtt létrehozol egy message objektumot, beállítod ami neked kell, beleértve az üzenetet is, majd küldéskor azt átadod a mailer objektumnak.

Ebből kiindulva nagyon egyszerű a megoldás:

placeholdereket helyezel el az üzenet szövegében valahogy így:
$message_template = 'Kedves %name! stb... Leiratkozás: http://example.org/leiratkozas/?email=%email';
Gondolom a fogadók adatai egy tömbben vannak. Küldéskor fogod bejárod a tömböt, és lecseréled a $message_template-ben a placeholdereket a konkrét névre és emailre.
for( $i=0; $i<count($users); $i++ ) {
  //...
  $message_to_send = srt_replace(array('%name','%email'),array($users[$i]['name'],$users[$i]['email']),$message_template);
  //...
  // Itt meg elküldöd az üzenetet :)
}
2

strtr

Poetro · 2010. Okt. 27. (Sze), 16.45
Talán érdemesebb erre az strtr-t használni, kicsit közelebb áll a problémához. (egyébként az str_replace-t elgépelted ;)
foreach($users as $user) {  
  $message->setBody(
    strtr($message_template, array(
      '%name'  => $user['name'],
      '%email' =>$user['email'],
    ))
  );
  //...
  $mailer->send($message);  
}
3

Hmm tényleg... :))

neogee · 2010. Okt. 27. (Sze), 17.18
Hmm tényleg... :)) Köszi.

Amm azt elárulod nekem, hogy mi a különbség a két megoldás között?
Azon túl, hogy a tiéd némileg takarékosabb. :) Miben más az strtr mint az str_replace, vagy mitől jobb ide az strtr?
4

Szebb, kifejezőbb

Poetro · 2010. Okt. 27. (Sze), 17.28
Igazából csak annyiban, hogy jobban kifejezi a műveletet, valamint látszódnak a tényleges párok, hogy mit, minek feleltetünk meg.
5

Ez teljes mértékig igaz. Csak

neogee · 2010. Okt. 27. (Sze), 17.34
Ez teljes mértékig igaz. Csak azért kérdeztem, mert a php tartalmaz egy halom olyan függvényt, ami gyakorlatilag ugyanazt csinálja, és nagyjából még ugyan úgy is... És soha nem értettem, hogy mi a különbség ezek között... :) Mostmár legalább egyel tisztában vagyok! :))