Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Mail.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Contact\Model;
7 
13 
14 class Mail implements MailInterface
15 {
19  private $contactsConfig;
20 
24  private $transportBuilder;
25 
29  private $inlineTranslation;
30 
34  private $storeManager;
35 
44  public function __construct(
45  ConfigInterface $contactsConfig,
46  TransportBuilder $transportBuilder,
47  StateInterface $inlineTranslation,
48  StoreManagerInterface $storeManager = null
49  ) {
50  $this->contactsConfig = $contactsConfig;
51  $this->transportBuilder = $transportBuilder;
52  $this->inlineTranslation = $inlineTranslation;
53  $this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(StoreManagerInterface::class);
54  }
55 
63  public function send($replyTo, array $variables)
64  {
66  $replyToName = !empty($variables['data']['name']) ? $variables['data']['name'] : null;
67 
68  $this->inlineTranslation->suspend();
69  try {
70  $transport = $this->transportBuilder
71  ->setTemplateIdentifier($this->contactsConfig->emailTemplate())
72  ->setTemplateOptions(
73  [
74  'area' => Area::AREA_FRONTEND,
75  'store' => $this->storeManager->getStore()->getId()
76  ]
77  )
78  ->setTemplateVars($variables)
79  ->setFrom($this->contactsConfig->emailSender())
80  ->addTo($this->contactsConfig->emailRecipient())
81  ->setReplyTo($replyTo, $replyToName)
82  ->getTransport();
83 
84  $transport->sendMessage();
85  } finally {
86  $this->inlineTranslation->resume();
87  }
88  }
89 }
__construct(ConfigInterface $contactsConfig, TransportBuilder $transportBuilder, StateInterface $inlineTranslation, StoreManagerInterface $storeManager=null)
Definition: Mail.php:44
send($replyTo, array $variables)
Definition: Mail.php:63