'smtp']; $smtpHelper = ObjectManager::getInstance()->get(Data::class); if ($host = $smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'host')) { $options['host'] = $host; } if ($protocol = $smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'protocol')) { $options['ssl'] = $protocol; } if ($port = $smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'port')) { $options['port'] = $port; } $options['auth'] = $smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'authentication'); $options['username'] = $smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'username'); $encryptor = ObjectManager::getInstance()->get(EncryptorInterface::class); $options['password'] = $encryptor->decrypt($smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'password')); $this->smtpHelper = $smtpHelper; $this->registry = ObjectManager::getInstance()->get(Registry::class); parent::__construct(['transport' => $options]); } /** * @return \Magento\Framework\Mail\Message */ public function getMessage() { $message = $this->registry->registry('mageplaza_smtp_message'); if ($returnPath = $this->smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'return_path_email')) { $message->setReturnPath($returnPath); } $headers = $message->getHeaders(); $senderName = strip_tags($headers['From'][0], $message->getFrom()); $userName = $this->smtpHelper->getConfig(self::CONFIGURATION_GROUP_SMTP, 'username'); if ($userName && $senderName) { $message->clearFrom(); $message->setFrom($userName, $senderName); } return $message; } /** * @return bool|mixed */ public function isModuleEnable() { if (is_null($this->_moduleEnable)) { $this->_moduleEnable = $this->smtpHelper->getConfig(self::GENERAL_GROUP_SMTP, 'enabled'); } return $this->_moduleEnable; } /** * @return bool|mixed */ public function isDeveloperMode() { if (is_null($this->_developerMode)) { $this->_developerMode = $this->smtpHelper->getConfig(self::DEVELOPER_GROUP_SMTP, 'developer_mode'); } return $this->_developerMode; } /** * @return bool|mixed */ public function isEnableEmailLog() { if (is_null($this->_emailLog)) { $this->_emailLog = $this->smtpHelper->getConfig(self::DEVELOPER_GROUP_SMTP, 'log_email'); } return $this->_emailLog; } }