Skip to content
This repository was archived by the owner on Feb 6, 2022. It is now read-only.

Commit d2eae93

Browse files
committed
Merge pull request #19 from lstrojny/delivery-whitelist
Allow specifying delivery whitelists for the redirect plugin
2 parents fcacc9e + 3930be7 commit d2eae93

33 files changed

+394
-25
lines changed

DependencyInjection/Configuration.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@ public function getConfigTreeBuilder()
8383
->end()
8484
->end()
8585
->scalarNode('delivery_address')->end()
86+
->end()
87+
->fixXmlConfig('delivery_whitelist_pattern', 'delivery_whitelist')
88+
->children()
89+
->arrayNode('delivery_whitelist')
90+
->prototype('scalar')
91+
->end()
92+
->end()
8693
->booleanNode('disable_delivery')->end()
8794
->booleanNode('logging')->defaultValue($this->debug)->end()
8895
->end()

DependencyInjection/SwiftmailerExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ public function load(array $configs, ContainerBuilder $container)
126126
} else {
127127
$container->setParameter('swiftmailer.single_address', null);
128128
}
129+
$container->setParameter('swiftmailer.delivery_whitelist', $config['delivery_whitelist']);
129130
}
130131

131132
/**

Resources/config/schema/swiftmailer-1.0.xsd

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
<xsd:element name="config" type="config" />
99

1010
<xsd:complexType name="config">
11-
<xsd:all>
12-
<xsd:element name="spool" type="spool" minOccurs="0" maxOccurs="1" />
11+
<xsd:sequence>
1312
<xsd:element name="antiflood" type="antiflood" minOccurs="0" maxOccurs="1" />
14-
</xsd:all>
13+
<xsd:element name="spool" type="spool" minOccurs="0" maxOccurs="1" />
14+
<xsd:element name="delivery-whitelist-pattern" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
15+
</xsd:sequence>
1516

1617
<xsd:attribute name="username" type="xsd:string" />
1718
<xsd:attribute name="password" type="xsd:string" />

Resources/config/swiftmailer.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363

6464
<service id="swiftmailer.plugin.redirecting" class="%swiftmailer.plugin.redirecting.class%" public="false">
6565
<argument>%swiftmailer.single_address%</argument>
66+
<argument>%swiftmailer.delivery_whitelist%</argument>
6667
</service>
6768

6869
<service id="swiftmailer.plugin.antiflood" class="%swiftmailer.plugin.antiflood.class%" public="false">
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'antiflood' => true
4+
));
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array());
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'transport' => "smtp",
4+
'username' =>"user",
5+
'password' => "pass",
6+
'host' => "example.org",
7+
'port' => "12345",
8+
'encryption' => "tls",
9+
'auth-mode' => "login",
10+
'timeout' => "1000",
11+
'source_ip' => "127.0.0.1",
12+
'logging' => true,
13+
'spool' => array('type' => 'memory'),
14+
'delivery_address' => 'single@host.com',
15+
'delivery_whitelist' => array('/foo@.*/', '/.*@bar.com$/'),
16+
));
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'transport' => null
4+
));
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'delivery_address' => 'single@host.com',
4+
'delivery_whitelist' => array('/foo@.*/', '/.*@bar.com$/'),
5+
));
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'delivery_address' => 'single@host.com',
4+
'delivery_whitelist' => array('/foo@.*/'),
5+
));
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'transport' => "smtp",
4+
'username' =>"user",
5+
'password' => "pass",
6+
'host' => "example.org",
7+
'port' => "12345",
8+
'encryption' => "tls",
9+
'auth-mode' => "login",
10+
'timeout' => "1000",
11+
'source_ip' => "127.0.0.1",
12+
'logging' => true,
13+
));
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'spool' => true
4+
));
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?php
2+
$container->loadFromExtension('swiftmailer', array(
3+
'spool' => array('type' => 'memory')
4+
));
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config>
9+
<swiftmailer:antiflood/>
10+
</swiftmailer:config>
11+
</container>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config/>
9+
</container>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config
9+
transport="smtp"
10+
username="user"
11+
password="pass"
12+
host="example.org"
13+
port="12345"
14+
encryption="tls"
15+
auth-mode="login"
16+
timeout="1000"
17+
source-ip="127.0.0.1"
18+
logging="true"
19+
delivery-address="single@host.com">
20+
<swiftmailer:antiflood/>
21+
<swiftmailer:spool type="memory"/>
22+
<swiftmailer:delivery-whitelist-pattern>/foo@.*/</swiftmailer:delivery-whitelist-pattern>
23+
<swiftmailer:delivery-whitelist-pattern>/.*@bar.com$/</swiftmailer:delivery-whitelist-pattern>
24+
</swiftmailer:config>
25+
</container>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config transport="null"/>
9+
</container>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config delivery-address="single@host.com">
9+
<swiftmailer:delivery-whitelist-pattern>/foo@.*/</swiftmailer:delivery-whitelist-pattern>
10+
<swiftmailer:delivery-whitelist-pattern>/.*@bar.com$/</swiftmailer:delivery-whitelist-pattern>
11+
</swiftmailer:config>
12+
</container>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config delivery-address="single@host.com">
9+
<swiftmailer:delivery-whitelist-pattern>/foo@.*/</swiftmailer:delivery-whitelist-pattern>
10+
</swiftmailer:config>
11+
</container>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
9+
<swiftmailer:config
10+
transport="smtp"
11+
username="user"
12+
password="pass"
13+
host="example.org"
14+
port="12345"
15+
encryption="tls"
16+
auth-mode="login"
17+
timeout="1000"
18+
source-ip="127.0.0.1"
19+
logging="true"/>
20+
</container>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config>
9+
<swiftmailer:spool/>
10+
</swiftmailer:config>
11+
</container>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
7+
8+
<swiftmailer:config>
9+
<swiftmailer:spool type="memory"/>
10+
</swiftmailer:config>
11+
</container>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
swiftmailer:
2+
antiflood: true
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
swiftmailer:
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
swiftmailer:
2+
transport: smtp
3+
username: user
4+
password: pass
5+
host: example.org
6+
port: 12345
7+
encryption: tls
8+
auth-mode: login
9+
timeout: 1000
10+
source_ip: 127.0.0.1
11+
logging: true
12+
spool:
13+
type: memory
14+
delivery_address: single@host.com
15+
delivery_whitelist:
16+
- /foo@.*/
17+
- /.*@bar.com$/
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
swiftmailer:
2+
transport: ~
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
swiftmailer:
2+
delivery_address: single@host.com
3+
delivery_whitelist:
4+
- /foo@.*/
5+
- /.*@bar.com$/
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
swiftmailer:
2+
delivery_address: single@host.com
3+
delivery_whitelist:
4+
- /foo@.*/
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
swiftmailer:
2+
transport: smtp
3+
username: user
4+
password: pass
5+
host: example.org
6+
port: 12345
7+
encryption: tls
8+
auth-mode: login
9+
timeout: 1000
10+
source_ip: 127.0.0.1
11+
logging: true
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
swiftmailer:
2+
spool: true
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
swiftmailer:
2+
spool:
3+
type: memory

0 commit comments

Comments
 (0)