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
Quand 3000 mails doivent partir la page charge charge...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php foreach ($destinataires as $email) { $message->SetTo($email); $this->getMailer()->send($message); ?>
Jouer avec un envoie tous les x passages
Trop tordu ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Utiliser le batchSend de swiftMail ?
Est-ce que ça apporte quelque chose par rapport à la première solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $message->SetTo($destinataires); $this->getMailer()->batchSend($message); ?>
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
Ca semble le plus logique,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2php symfony project:send-emails --env=production --message-limit=80
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 ?
Comment faites vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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')); } ?>
Partager