2010-11-29 5 views
1

Je souhaite envoyer des e-mails par lots à l'aide de SwiftMailer, mais je me demandais simplement quelle serait la meilleure option pour cela. Le problème est que le contenu de l'e-mail doit être personnalisé, c'est-à-dire qu'il y aura une salutation en haut et un lien personnalisé.Envoyer un e-mail par lots avec un contenu personnalisé

Voici mon code actuel POO:

foreach($suppliers as $supplier) 
{ 
    $quote=new Quote(); 
    $quote->enquiry_id=$enquiry->id; 
    $quote->supplier_id=$supplier->id; 

    if($quote->save()) 
    { 
     $supplier_emails[]=$supplier->email; 
    } 
} 

$message=new SwiftMailMessage; 
$message->setTo($supplier_emails); 
$message->setFrom($params['adminEmailFromAddress'] => $params['adminEmailFromName']); 
$message->setBody('Here is the message itself') 
App::app()->mail->batchSend($message); 

J'utilise un conteneur pour SwiftMailer. Donc, comme vous pouvez le voir, je peux facilement spécifier un tableau d'adresse e-mail pour envoyer le message. Comment puis-je personnaliser le contenu? Les variables que j'ai besoin d'inclure dans le contenu sont $ fournisseur-> nom et $ fournisseur-> lien.

Personnellement, je ne vois pas comment cela peut être fait, à part envoyer chaque email individuellement dans la boucle foreach(). Si tel est le cas, alors n'est-il pas préférable d'utiliser la fonction PHP interne()?

Répondre

1

Vous pouvez essayer d'utiliser le plugin Décorateur:

http://swiftmailer.org/docs/decorator-plugin

+0

Intéressant, je n'ai pas vu cela. Je vais probablement essayer, mais j'ai remarqué sur le site que l'auteur a écrit: "Alors que le plugin décorateur fournit un moyen de résoudre ce problème, il existe plusieurs façons de résoudre ce problème sans avoir besoin d'un plugin." - Des suggestions à ce sujet? – GSTAR

+0

Eh bien, pour moi, cela semble être la solution la plus simple. Vous pouvez même fournir votre propre fonction de recherche de remplacements. – kapa

Questions connexes