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: ];
27:
28:
29: public function loadConfiguration()
30: {
31: $builder = $this->getContainerBuilder();
32: $config = $this->validateConfig($this->defaults);
33:
34: $mailer = $builder->addDefinition($this->prefix('mailer'))
35: ->setClass(Nette\Mail\IMailer::class);
36:
37: if (empty($config['smtp'])) {
38: $mailer->setFactory(Nette\Mail\SendmailMailer::class);
39: } else {
40: $mailer->setFactory(Nette\Mail\SmtpMailer::class, [$config]);
41: }
42:
43: if ($this->name === 'mail') {
44: $builder->addAlias('nette.mailer', $this->prefix('mailer'));
45: }
46: }
47: }
48: