Ich verwende derzeit SwiftMailer, um E-Mails an mehrere Benutzer (bis zu 50) zu senden. Ich habe es eingerichtet und funktioniert ordnungsgemäß, aber ich bin nicht ganz sicher, wie Sie die Empfänger aus meiner MySQL-Datenbank ziehen und iterieren, um sie zu senden. HierBatch Senden Sie E-Mail mit SwiftMailer
ist, was ich derzeit haben:
<?php
require_once 'swift/lib/swift_required.php';
$mailer = Swift_Mailer::newInstance(
Swift_SmtpTransport::newInstance('smtp.connection.com', 25)
->setUsername('myUserName')
->setPassword('myPassword')
);
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(9));
$message = Swift_Message::newInstance()
->setSubject('Let\'s get together today.')
->setFrom(array('[email protected]' => 'From Me'))
->setTo(array('[email protected]' => 'Tom Jones', '[email protected]' => 'Jane Smith', '[email protected]' => 'John Doe', '[email protected]' => 'Bill Watson',))
->setBody('Here is the message itself')
->addPart('<b>Test message being sent!!</b>', 'text/html')
;
$numSent = $mailer->batchSend($message, $failures);
printf("Sent %d messages\n", $numSent);
Wie Sie oben sehen können, in der setTo, würde Ich mag von meinem Benutzer in der Datenbank iterieren. Etwas wie:
SELECT first, last, email FROM users WHERE is_active=1
Die documentation Staaten:
Note: Multiple calls to setTo() will not add new recipients – each call overrides the previous calls. If you want to iteratively add recipients, use the addTo() method.
Aber ich bin nicht sicher: 1: Wie aus meinem Datebase in diesem Skript auswählen und: 2 : Wenn ich in meinem Fall die Methode addTo() verwenden müsste. Irgendwelche Vorschläge, wie man das richtig einrichtet?
Danke!
BatchSend wurde in der neuesten Version von SwiftMailer entfernt. Die aktuelle Dokumentation zum Senden von E-Mail-Stapeln finden Sie unter http://swiftmailer.org/docs/sending.html#sending-emails-in-batch. – DrCord