templateContainer = $templateContainer; $this->identityContainer = $identityContainer; $this->transportBuilder = $transportBuilder; } /** * Prepare and send email message * * @return void */ public function send() { $this->configureEmailTemplate(); $this->transportBuilder->addTo( $this->identityContainer->getCustomerEmail(), $this->identityContainer->getCustomerName() ); $copyTo = $this->identityContainer->getEmailCopyTo(); if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'bcc') { foreach ($copyTo as $email) { $this->transportBuilder->addBcc($email); } } $transport = $this->transportBuilder->getTransport(); $transport->sendMessage(); } /** * Prepare and send copy email message * * @return void */ public function sendCopyTo() { $copyTo = $this->identityContainer->getEmailCopyTo(); if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'copy') { foreach ($copyTo as $email) { $this->configureEmailTemplate(); $this->transportBuilder->addTo($email); $transport = $this->transportBuilder->getTransport(); $transport->sendMessage(); } } } /** * Configure email template * * @return void */ protected function configureEmailTemplate() { $this->transportBuilder->setTemplateIdentifier($this->templateContainer->getTemplateId()); $this->transportBuilder->setTemplateOptions($this->templateContainer->getTemplateOptions()); $this->transportBuilder->setTemplateVars($this->templateContainer->getTemplateVars()); $this->transportBuilder->setFromByScope( $this->identityContainer->getEmailIdentity(), $this->identityContainer->getStore()->getId() ); } }