1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-04 04:07:39 +02:00

Added SwiftMailerHandler, added write to MailHandler

This commit is contained in:
Gyula Sallai
2011-04-25 01:48:12 +02:00
parent 1279194192
commit a1bc483041
3 changed files with 75 additions and 9 deletions

View File

@@ -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);
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* 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);
}
}

View File

@@ -1,5 +1,14 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* 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);
}
}