diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php
index d49964b1..388d1ab0 100644
--- a/DependencyInjection/Configuration.php
+++ b/DependencyInjection/Configuration.php
@@ -175,7 +175,7 @@
* - subject: string
* - [level]: level name or int value, defaults to DEBUG
* - [bubble]: bool, defaults to true
- * - [headers]: optional array containing additional headers
+ * - [headers]: optional array containing additional headers: ['Foo: Bar', '...']
*
* - socket:
* - connection_string: string
@@ -348,6 +348,7 @@ public function getConfigTreeBuilder()
->fixXmlConfig('excluded_http_code')
->fixXmlConfig('tag')
->fixXmlConfig('accepted_level')
+ ->fixXmlConfig('header')
->canBeUnset()
->children()
->scalarNode('type')
diff --git a/DependencyInjection/MonologExtension.php b/DependencyInjection/MonologExtension.php
index 500a041b..ac1866aa 100644
--- a/DependencyInjection/MonologExtension.php
+++ b/DependencyInjection/MonologExtension.php
@@ -541,7 +541,7 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
$handler['bubble'],
));
if (!empty($handler['headers'])) {
- $definition->addMethodCall('addHeader', $handler['headers']);
+ $definition->addMethodCall('addHeader', [$handler['headers']]);
}
break;
diff --git a/Resources/config/schema/monolog-1.0.xsd b/Resources/config/schema/monolog-1.0.xsd
index 6c23e93a..38a6bba9 100644
--- a/Resources/config/schema/monolog-1.0.xsd
+++ b/Resources/config/schema/monolog-1.0.xsd
@@ -28,6 +28,7 @@
+
@@ -88,7 +89,6 @@
-
@@ -189,8 +189,8 @@
-
-
-
+
+
+
diff --git a/Tests/DependencyInjection/FixtureMonologExtensionTest.php b/Tests/DependencyInjection/FixtureMonologExtensionTest.php
index 23c0cfd7..9a40ee3c 100644
--- a/Tests/DependencyInjection/FixtureMonologExtensionTest.php
+++ b/Tests/DependencyInjection/FixtureMonologExtensionTest.php
@@ -216,6 +216,17 @@ public function testPsr3MessageProcessingDisabled()
$this->assertNotContains(array('pushProcessor', array(new Reference('monolog.processor.psr_log_message'))), $methodCalls, 'The PSR-3 processor should not be enabled', false, false);
}
+ public function testNativeMailer()
+ {
+ $container = $this->getContainer('native_mailer');
+
+ $logger = $container->getDefinition('monolog.handler.mailer');
+ $methodCalls = $logger->getMethodCalls();
+
+ $this->assertCount(2, $methodCalls);
+ $this->assertSame(['addHeader', [['Foo: bar', 'Baz: inga']]], $methodCalls[1]);
+ }
+
protected function getContainer($fixture)
{
$container = new ContainerBuilder();
diff --git a/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml b/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml
new file mode 100644
index 00000000..8c3e8242
--- /dev/null
+++ b/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml b/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml
new file mode 100644
index 00000000..4950a38f
--- /dev/null
+++ b/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml
@@ -0,0 +1,10 @@
+monolog:
+ handlers:
+ mailer:
+ type: native_mailer
+ from_email: foo@example.com
+ to_email: bar@exemple.com
+ subject: a subject
+ headers:
+ - "Foo: bar"
+ - "Baz: inga"