1<?php
2
3/*
4 * This file is part of SwiftMailer.
5 * (c) 2011 Fabien Potencier
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11/**
12 * Stores all sent emails for further usage.
13 *
14 * @author Fabien Potencier
15 */
16class Swift_Plugins_MessageLogger implements Swift_Events_SendListener
17{
18    /**
19     * @var Swift_Mime_Message[]
20     */
21    private $messages;
22
23    public function __construct()
24    {
25        $this->messages = array();
26    }
27
28    /**
29     * Get the message list.
30     *
31     * @return Swift_Mime_Message[]
32     */
33    public function getMessages()
34    {
35        return $this->messages;
36    }
37
38    /**
39     * Get the message count.
40     *
41     * @return int count
42     */
43    public function countMessages()
44    {
45        return count($this->messages);
46    }
47
48    /**
49     * Empty the message list.
50     */
51    public function clear()
52    {
53        $this->messages = array();
54    }
55
56    /**
57     * Invoked immediately before the Message is sent.
58     *
59     * @param Swift_Events_SendEvent $evt
60     */
61    public function beforeSendPerformed(Swift_Events_SendEvent $evt)
62    {
63        $this->messages[] = clone $evt->getMessage();
64    }
65
66    /**
67     * Invoked immediately after the Message is sent.
68     *
69     * @param Swift_Events_SendEvent $evt
70     */
71    public function sendPerformed(Swift_Events_SendEvent $evt)
72    {
73    }
74}
75