|
|
@@ -13,6 +13,7 @@ namespace Monolog\Handler;
|
|
|
|
|
|
use Monolog\Logger;
|
|
|
use Swift;
|
|
|
+use Swift_Message;
|
|
|
|
|
|
/**
|
|
|
* MandrillHandler uses cURL to send the emails to the Mandrill API
|
|
|
@@ -21,25 +22,27 @@ use Swift;
|
|
|
*/
|
|
|
class MandrillHandler extends MailHandler
|
|
|
{
|
|
|
+ /** @var Swift_Message */
|
|
|
protected $message;
|
|
|
+ /** @var string */
|
|
|
protected $apiKey;
|
|
|
|
|
|
/**
|
|
|
- * @psalm-param Swift_Message|callable(string, array): Swift_Message $message
|
|
|
+ * @psalm-param Swift_Message|callable(): Swift_Message $message
|
|
|
*
|
|
|
- * @param string $apiKey A valid Mandrill API key
|
|
|
- * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced
|
|
|
- * @param string|int $level The minimum logging level at which this handler will be triggered
|
|
|
- * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
|
|
+ * @param string $apiKey A valid Mandrill API key
|
|
|
+ * @param callable|Swift_Message $message An example message for real messages, only the body will be replaced
|
|
|
+ * @param string|int $level The minimum logging level at which this handler will be triggered
|
|
|
+ * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
|
|
|
*/
|
|
|
public function __construct(string $apiKey, $message, $level = Logger::ERROR, bool $bubble = true)
|
|
|
{
|
|
|
parent::__construct($level, $bubble);
|
|
|
|
|
|
- if (!$message instanceof \Swift_Message && is_callable($message)) {
|
|
|
+ if (!$message instanceof Swift_Message && is_callable($message)) {
|
|
|
$message = $message();
|
|
|
}
|
|
|
- if (!$message instanceof \Swift_Message) {
|
|
|
+ if (!$message instanceof Swift_Message) {
|
|
|
throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it');
|
|
|
}
|
|
|
$this->message = $message;
|
|
|
@@ -58,9 +61,11 @@ class MandrillHandler extends MailHandler
|
|
|
|
|
|
$message = clone $this->message;
|
|
|
$message->setBody($content, $mime);
|
|
|
+ /** @phpstan-ignore-next-line */
|
|
|
if (version_compare(Swift::VERSION, '6.0.0', '>=')) {
|
|
|
$message->setDate(new \DateTimeImmutable());
|
|
|
} else {
|
|
|
+ /** @phpstan-ignore-next-line */
|
|
|
$message->setDate(time());
|
|
|
}
|
|
|
|