1: <?php
2:
3: 4: 5: 6:
7:
8: namespace Nette\Bridges\MailDI;
9:
10: use Nette;
11:
12:
13: 14: 15:
16: class MailExtension extends Nette\DI\CompilerExtension
17: {
18: public $defaults = [
19: 'smtp' => false,
20: 'host' => null,
21: 'port' => null,
22: 'username' => null,
23: 'password' => null,
24: 'secure' => null,
25: 'timeout' => null,
26: 'clientHost' => null,
27: 'persistent' => false,
28: ];
29:
30:
31: public function loadConfiguration()
32: {
33: $builder = $this->getContainerBuilder();
34: $config = $this->validateConfig($this->defaults);
35:
36: $mailer = $builder->addDefinition($this->prefix('mailer'))
37: ->setClass(Nette\Mail\IMailer::class);
38:
39: if (empty($config['smtp'])) {
40: $mailer->setFactory(Nette\Mail\SendmailMailer::class);
41: } else {
42: $mailer->setFactory(Nette\Mail\SmtpMailer::class, [$config]);
43: }
44:
45: if ($this->name === 'mail') {
46: $builder->addAlias('nette.mailer', $this->prefix('mailer'));
47: }
48: }
49: }
50: