public static function enviarMail($destinatario, $titulo, $mensaje) { $mailer = new sfMailer(); if ($mailer->composeAndSend($from, $destinatario, $titulo, $mensaje) > 0) { return 'ok'; } else { return 'No se pudo enviar el correo a ' . $destinatario; } }
$t->is($messages[0]->getSubject(), 'Subject', '->composeAndSend() takes the subject as its third argument'); $t->is($messages[0]->getBody(), 'Body', '->composeAndSend() takes the body as its fourth argument'); // ->flushQueue() $t->diag('->flushQueue()'); $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'none')); $mailer->composeAndSend('*****@*****.**', '*****@*****.**', 'Subject', 'Body'); try { $mailer->flushQueue(); $t->fail('->flushQueue() throws a LogicException exception if the delivery_strategy is not spool'); } catch (LogicException $e) { $t->pass('->flushQueue() throws a LogicException exception if the delivery_strategy is not spool'); } $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'spool', 'spool_class' => 'TestSpool', 'spool_arguments' => array('TestMailMessage'), 'transport' => array('class' => 'TestMailerTransport'))); $transport = $mailer->getRealtimeTransport(); $spool = $mailer->getTransport()->getSpool(); $mailer->composeAndSend('*****@*****.**', '*****@*****.**', 'Subject', 'Body'); $t->is($spool->getQueuedCount(), 1, '->flushQueue() sends messages in the spool'); $t->is($transport->getSentCount(), 0, '->flushQueue() sends messages in the spool'); $mailer->flushQueue(); $t->is($spool->getQueuedCount(), 0, '->flushQueue() sends messages in the spool'); $t->is($transport->getSentCount(), 1, '->flushQueue() sends messages in the spool'); // ->sendNextImmediately() $t->diag('->sendNextImmediately()'); $mailer = new sfMailer($dispatcher, array('logging' => true, 'delivery_strategy' => 'spool', 'spool_class' => 'TestSpool', 'spool_arguments' => array('TestMailMessage'), 'transport' => array('class' => 'TestMailerTransport'))); $transport = $mailer->getRealtimeTransport(); $spool = $mailer->getTransport()->getSpool(); $t->is($mailer->sendNextImmediately(), $mailer, '->sendNextImmediately() implements a fluid interface'); $mailer->composeAndSend('*****@*****.**', '*****@*****.**', 'Subject', 'Body'); $t->is($spool->getQueuedCount(), 0, '->sendNextImmediately() bypasses the spool'); $t->is($transport->getSentCount(), 1, '->sendNextImmediately() bypasses the spool'); $transport->reset();