Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SenderBuilder.php
Go to the documentation of this file.
1 <?php
7 
13 
15 {
19  protected $templateContainer;
20 
24  protected $identityContainer;
25 
29  protected $transportBuilder;
30 
34  private $transportBuilderByStore;
35 
42  public function __construct(
46  TransportBuilderByStore $transportBuilderByStore = null
47  ) {
48  $this->templateContainer = $templateContainer;
49  $this->identityContainer = $identityContainer;
50  $this->transportBuilder = $transportBuilder;
51  $this->transportBuilderByStore = $transportBuilderByStore ?: ObjectManager::getInstance()->get(
52  TransportBuilderByStore::class
53  );
54  }
55 
61  public function send()
62  {
63  $this->configureEmailTemplate();
64 
65  $this->transportBuilder->addTo(
66  $this->identityContainer->getCustomerEmail(),
67  $this->identityContainer->getCustomerName()
68  );
69 
70  $copyTo = $this->identityContainer->getEmailCopyTo();
71 
72  if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'bcc') {
73  foreach ($copyTo as $email) {
74  $this->transportBuilder->addBcc($email);
75  }
76  }
77 
78  $transport = $this->transportBuilder->getTransport();
79  $transport->sendMessage();
80  }
81 
87  public function sendCopyTo()
88  {
89  $copyTo = $this->identityContainer->getEmailCopyTo();
90 
91  if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'copy') {
92  foreach ($copyTo as $email) {
93  $this->configureEmailTemplate();
94 
95  $this->transportBuilder->addTo($email);
96 
97  $transport = $this->transportBuilder->getTransport();
98  $transport->sendMessage();
99  }
100  }
101  }
102 
108  protected function configureEmailTemplate()
109  {
110  $this->transportBuilder->setTemplateIdentifier($this->templateContainer->getTemplateId());
111  $this->transportBuilder->setTemplateOptions($this->templateContainer->getTemplateOptions());
112  $this->transportBuilder->setTemplateVars($this->templateContainer->getTemplateVars());
113  $this->transportBuilderByStore->setFromByStore(
114  $this->identityContainer->getEmailIdentity(),
115  $this->identityContainer->getStore()->getId()
116  );
117  }
118 }
$email
Definition: details.phtml:13
__construct(Template $templateContainer, IdentityInterface $identityContainer, TransportBuilder $transportBuilder, TransportBuilderByStore $transportBuilderByStore=null)