Obecnie używam SwiftMailer do wysyłania e-maili do kilku użytkowników (do 50). Mam go skonfigurowany i działa poprawnie, jednak nie jestem pewien, jak wyciągnąć odbiorców z mojej bazy danych MySQL i iterować, aby je wysłać.Batch Wyślij wiadomość e-mail z SwiftMailer
Oto co obecnie mam:
<?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);
Jak widać powyżej, w SETTO chciałbym iteracyjne z moich użytkowników w bazie danych. Coś jak:
SELECT first, last, email FROM users WHERE is_active=1
W documentation stany:
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.
Ale nie jestem pewien: 1: Jak wybrać z mojej bazie w tym skrypcie oraz: 2 : Gdybym potrzebował użyć metody addTo() w moim przypadku. Wszelkie sugestie, jak ustawić to poprawnie?
Dzięki!
batchSend został usunięty w najnowszej wersji SwiftMailer. Zobacz http://swiftmailer.org/docs/sending.html#sending-emails-in-batch dla bieżącej dokumentacji wysyłania partii wiadomości e-mail. – DrCord