diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php
index 48d789a5..388d1ab0 100644
--- a/DependencyInjection/Configuration.php
+++ b/DependencyInjection/Configuration.php
@@ -175,6 +175,7 @@
* - subject: string
* - [level]: level name or int value, defaults to DEBUG
* - [bubble]: bool, defaults to true
+ * - [headers]: optional array containing additional headers: ['Foo: Bar', '...']
*
* - socket:
* - connection_string: string
@@ -347,6 +348,7 @@ public function getConfigTreeBuilder()
->fixXmlConfig('excluded_http_code')
->fixXmlConfig('tag')
->fixXmlConfig('accepted_level')
+ ->fixXmlConfig('header')
->canBeUnset()
->children()
->scalarNode('type')
@@ -594,6 +596,10 @@ public function getConfigTreeBuilder()
->end()
->scalarNode('subject')->end() // swift_mailer and native_mailer
->scalarNode('content_type')->defaultNull()->end() // swift_mailer
+ ->arrayNode('headers') // native_mailer
+ ->canBeUnset()
+ ->scalarPrototype()->end()
+ ->end()
->scalarNode('mailer')->defaultValue('mailer')->end() // swift_mailer
->arrayNode('email_prototype') // swift_mailer
->canBeUnset()
diff --git a/DependencyInjection/MonologExtension.php b/DependencyInjection/MonologExtension.php
index 285e9b81..ac1866aa 100644
--- a/DependencyInjection/MonologExtension.php
+++ b/DependencyInjection/MonologExtension.php
@@ -540,6 +540,9 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
$handler['level'],
$handler['bubble'],
));
+ if (!empty($handler['headers'])) {
+ $definition->addMethodCall('addHeader', [$handler['headers']]);
+ }
break;
case 'socket':
diff --git a/Resources/config/schema/monolog-1.0.xsd b/Resources/config/schema/monolog-1.0.xsd
index cf0eac87..38a6bba9 100644
--- a/Resources/config/schema/monolog-1.0.xsd
+++ b/Resources/config/schema/monolog-1.0.xsd
@@ -28,6 +28,7 @@
+
@@ -186,4 +187,10 @@
+
+
+
+
+
+
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"