diff --git a/src/Monolog/Handler/MailHandler.php b/src/Monolog/Handler/MailHandler.php index a6b4ac5e..921879ae 100644 --- a/src/Monolog/Handler/MailHandler.php +++ b/src/Monolog/Handler/MailHandler.php @@ -75,6 +75,23 @@ abstract class MailHandler extends AbstractHandler { return $this->messageFormat; } + + /** + * Send a mail with the given content + * + * @param string $content + */ + abstract protected function send($content); + + /** + * {@inheritdoc} + */ + protected function write(array $record) + { + $content = $record['message']; + + $this->send($content); + } /** * Create a message to send from the given log entry messages @@ -129,11 +146,4 @@ abstract class MailHandler extends AbstractHandler return 'Application logs:\n %records%'; } - /** - * Send a mail with the given message - * - * @param string $message - */ - abstract protected function send($message); - } \ No newline at end of file diff --git a/src/Monolog/Handler/SwiftMailerHandler.php b/src/Monolog/Handler/SwiftMailerHandler.php new file mode 100644 index 00000000..598d7041 --- /dev/null +++ b/src/Monolog/Handler/SwiftMailerHandler.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +/** + * SwiftMailerHandler uses Swift_Mailer to send the emails + * + * @author Gyula Sallai + */ +class SwiftMailerHandler extends MailHandler +{ + + protected $mailer; + protected $message; + + /** + * @param \Swift_Mailer $mailer The mailer to use + * @param \Swift_Message $message An example message for real messages, + * only the body will be replaced + */ + public function __construct(\Swift_Mailer $mailer, \Swift_Message $message) + { + $this->mailer = $mailer; + $this->message = $message; + } + + /** + * {@inheritdoc} + */ + protected function send($content) + { + $message = clone $this->message; + $message->setBody($content); + + $this->mailer->send($message); + } + +} \ No newline at end of file diff --git a/tests/Monolog/Handler/MailHandlerTest.php b/tests/Monolog/Handler/MailHandlerTest.php index 24b39ca4..9af57049 100644 --- a/tests/Monolog/Handler/MailHandlerTest.php +++ b/tests/Monolog/Handler/MailHandlerTest.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Monolog\Handler; use Monolog\Logger; @@ -34,9 +43,9 @@ class MailHandlerTest extends TestCase $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); $handler->expects($this->once()) - ->method('write'); + ->method('send'); - $this->assertTrue($handler->handle($record)); + $handler->handle($record); } } \ No newline at end of file