Come posso tenere traccia di posta elettronica inviati tramite PHP Swift Mailer?

StackOverflow https://stackoverflow.com/questions/3740624

  •  03-10-2019
  •  | 
  •  

Domanda

Sto usando PHP Swift Mailer per inviare una mail di massa a un insieme di utenti. Ma io non sono in grado di tenere traccia di posta elettronica inviato.

Il mio codice:

<?php 
require_once("includes/database.class.php");
require_once("lib/swift_required.php"); 
$con=DBClass::getConnection();
$db=DBClass::getDatabase($con);

$login_id="myloginname";
$password="mypassword";

$to_mail; //list of people 

//Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
          ->setUsername($login_id)
          ->setPassword($password);

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);


 //Rate limit to 25 emails per-minute
$mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(
25, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE
        ));

//Create a message
        $message = Swift_Message::newInstance($subject)
          ->setFrom($login_id)
          ->setTo($to_mail)
          ->setBody($body,
                    'text/html'
                    ); 

$numSent=$mailer->batchSend($message);
?>

Sto usando il metodo batchSend () per inviare la posta, che mi dà il conteggio di posta elettronica che è stato inviato, ma non mi sta dando l'elenco delle e-mail che è stato inviato. Come può essere possibile, non v'è alcun plugin o funzione disponibile?

Utilizzando Logger plug mi darà il registro, ma sono in grado di leggere da questo.

È stato utile?

Soluzione

È possibile ottenere una serie di indirizzi di posta elettronica che sono stati respinti passando una variabile in riferimento ai batchSend() per il sistema di riempimento in:

http://swiftmailer.org/docs/failures-byreference

Poi si può array_diff() quelli la matrice $to_mail per ottenere quelle succesful.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top