Envoie massif de mails avec swiftmailer
Hello,
Quel méthode utilisez vous pour l'envoie massif de mails avec votre applic sf ?
Plusieurs pistes possibles :
envoie du mail à chaque passage de la boucle
Code:
1 2 3 4 5 6
|
<?php
foreach ($destinataires as $email) {
$message->SetTo($email);
$this->getMailer()->send($message);
?> |
Quand 3000 mails doivent partir la page charge charge... :aie:
Jouer avec un envoie tous les x passages
Code:
1 2 3 4 5 6 7 8 9 10 11
|
$i=0;
foreach ($destinataires as $email) {
$message->AddBcc($email);
if ($i > 80) {
$this->getMailer()->send($message);
$i= 0;
}
$i++;
}
$this->getMailer()->send($message); |
Trop tordu ? :aie:
Utiliser le batchSend de swiftMail ?
Code:
1 2 3 4 5
|
<?php
$message->SetTo($destinataires);
$this->getMailer()->batchSend($message);
?> |
Est-ce que ça apporte quelque chose par rapport à la première solution ?
Mettre en place un cron sur le serveur qui va
exécuter la tâche de sf tous les jours tous les quart d'heures
Code:
1 2
|
php symfony project:send-emails --env=production --message-limit=80 |
Ca semble le plus logique,
mais quand il s'agit d'un envoie de mails tous les 2 mois sans date fixe d'envoie, est-ce que ça a encore un sens ?
Exécuter manuellement la tâche depuis actions.class.php ?
Code:
1 2 3 4 5 6 7 8
|
<?php
public function taskEmail() {
chdir(sfConfig::get('sf_root_dir')); // Trick plugin into thinking you are in a project directory
$task = new sfProjectSendEmailsTask($this->dispatcher, new sfFormatter());
$task->run(array(), array('env' => 'prod'));
}
?> |
Comment faites vous ?