Frage

Ich bin derzeit mit Swiftmailer E-Mails an mehrere Benutzer senden (bis zu 50). Ich habe es eingerichtet ist und ordnungsgemäß funktioniert, aber ich bin nicht ganz sicher, wie die Empfänger von meiner MySQL-Datenbank zu ziehen und wiederholen sie senden.

Hier 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('myfrom@domain.com' => 'From Me'))

  ->setTo(array('tom_jones@domain.com' => 'Tom Jones', 'jsmith@domain.com' => 'Jane Smith', 'j_doe@domain.com' => 'John Doe', 'bill_watson@domain.com' => '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. So etwas wie:

SELECT first, last, email FROM users WHERE is_active=1

Die Dokumentation heißt es:

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 meiner Datebase in diesem Skript auswählen und: 2: Wenn ich müsse den addTo () verwenden, Verfahren in meinem Fall. Alle Vorschläge, wie dies einzurichten richtig?

Danke!

War es hilfreich?

Lösung

Ich bin nicht ganz sicher, dass ich Ihre Frage richtig verstanden habe, aber hier ist ein Weg, es zu tun:

<?php
$message = Swift_Message::newInstance()
  ->setSubject('Let\'s get together today.')
  ->setFrom(array('myfrom@domain.com' => 'From Me'))
  ->setBody('Here is the message itself')
  ->addPart('<b>Test message being sent!!</b>', 'text/html')
;

$data = mysql_query('SELECT first, last, email FROM users WHERE is_active=1') or die(mysql_error());
while($row = mysql_fetch_assoc($data))
{
   $message->addTo($row['email'], $row['first'] . ' ' . $row['last']);
}

$message->batchSend();
?>

Ich hoffe, dass das, was Sie wollten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top