本文整理汇总了PHP中Magento\Framework\Mail\Template\TransportBuilder类的典型用法代码示例。如果您正苦于以下问题:PHP TransportBuilder类的具体用法?PHP TransportBuilder怎么用?PHP TransportBuilder使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TransportBuilder类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Post user question
*
* @return void
* @throws \Exception
*/
public function execute()
{
$post = $this->getRequest()->getPostValue();
if (!$post) {
$this->_redirect('*/*/');
return;
}
$this->inlineTranslation->suspend();
try {
$postObject = new \Magento\Framework\DataObject();
$postObject->setData($post);
$error = false;
if (!\Zend_Validate::is(trim($post['contact_email']), 'EmailAddress')) {
$error = true;
}
if (!\Zend_Validate::is(trim($post['contact_question']), 'NotEmpty')) {
$error = true;
}
if ($error) {
throw new \Exception();
}
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
$transport = $this->_transportBuilder->setTemplateIdentifier($this->scopeConfig->getValue(self::XML_PATH_EMAIL_TEMPLATE, $storeScope))->setTemplateOptions(['area' => \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])->setTemplateVars(['data' => $postObject])->setFrom($this->scopeConfig->getValue(self::XML_PATH_EMAIL_SENDER, $storeScope))->addTo($this->scopeConfig->getValue(self::XML_PATH_EMAIL_RECIPIENT, $storeScope))->setReplyTo($post['contact_email'])->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
$this->messageManager->addSuccess(__('Thanks for contacting us with your comments and questions. We\'ll respond to you very soon.'));
$this->_redirect('delivery-charges');
return;
} catch (\Exception $e) {
$this->inlineTranslation->resume();
$this->messageManager->addError(__('We can\'t process your request right now. Sorry, that\'s all we know.'));
$this->_redirect('delivery-charges');
return;
}
}
示例2: sendNotification
public function sendNotification($data)
{
if (!$data) {
return false;
}
$this->inlineTranslation->suspend();
try {
$postObject = new \Magento\Framework\DataObject();
$postObject->setData($data);
$error = false;
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
/* $from = [
'name' => '',
'email' => ''
];*/
$email_template = $this->scopeConfig->getValue('cadou/email/template');
if (empty($email_template)) {
$email_template = (string) 'cadou_email_template';
// this code we have mentioned in the email_templates.xml
}
$transport = $this->_transportBuilder->setTemplateIdentifier($email_template)->setTemplateOptions(['area' => \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, 'store' => $this->storeManager->getDefaultStoreView()->getId()])->setTemplateVars(['data' => $postObject, 'subject' => $data['productname']])->setFrom($this->scopeConfig->getValue('contact/email/sender_email_identity', $storeScope))->addTo($data['email'], isset($data['fullname']) ? $data['fullname'] : $data['name'])->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
/*$this->messageManager->addSuccess(
__('Thanks for contacting us with your comments and questions. We\'ll respond to you very soon.')
);*/
return TRUE;
} catch (\Exception $e) {
$this->inlineTranslation->resume();
$this->messageManager->addError(__('We can\'t process your request right now. Sorry, that\'s all we know.' . $e->getMessage()));
return FALSE;
}
}
示例3: configureEmailTemplate
/**
* 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->setFrom($this->identityContainer->getEmailIdentity());
}
示例4: testSubscribe
public function testSubscribe()
{
$email = 'subscriber_email@magento.com';
$this->resource->expects($this->any())->method('loadByEmail')->willReturn(['subscriber_status' => 3, 'subscriber_email' => $email, 'name' => 'subscriber_name']);
$this->resource->expects($this->any())->method('getIdFieldName')->willReturn('id_field');
$this->scopeConfig->expects($this->any())->method('getValue')->willReturn(true);
$this->customerSession->expects($this->any())->method('isLoggedIn')->willReturn(true);
$customerDataModel = $this->getMock('\\Magento\\Customer\\Api\\Data\\CustomerInterface');
$this->customerSession->expects($this->any())->method('getCustomerDataObject')->willReturn($customerDataModel);
$this->customerSession->expects($this->any())->method('getCustomerId')->willReturn(1);
$customerDataModel->expects($this->any())->method('getEmail')->willReturn($email);
$this->customerRepository->expects($this->any())->method('getById')->willReturn($customerDataModel);
$customerDataModel->expects($this->any())->method('getStoreId')->willReturn(1);
$customerDataModel->expects($this->any())->method('getId')->willReturn(1);
$this->transportBuilder->expects($this->any())->method('setTemplateIdentifier')->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setTemplateOptions')->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setTemplateVars')->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setFrom')->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('addTo')->willReturnSelf();
$storeModel = $this->getMock('\\Magento\\Store\\Model\\Store', ['getId'], [], '', false);
$this->scopeConfig->expects($this->any())->method('getValue')->willReturn('owner_email@magento.com');
$this->storeManager->expects($this->any())->method('getStore')->willReturn($storeModel);
$storeModel->expects($this->any())->method('getId')->willReturn(1);
$transport = $this->getMock('\\Magento\\Framework\\Mail\\TransportInterface');
$this->transportBuilder->expects($this->any())->method('getTransport')->willReturn($transport);
$transport->expects($this->any())->method('sendMessage')->willReturnSelf();
$inlineTranslation = $this->getMock('Magento\\Framework\\Translate\\Inline\\StateInterface');
$inlineTranslation->expects($this->any())->method('resume')->willReturnSelf();
$this->resource->expects($this->atLeastOnce())->method('save')->willReturnSelf();
$this->assertEquals(1, $this->subscriber->subscribe($email));
}
示例5: _sendEmail
protected function _sendEmail($from, $to, $templateId, $vars, $store, $area = \Magento\Framework\App\Area::AREA_FRONTEND)
{
$this->inlineTranslation->suspend();
$this->_transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(['area' => $area, 'store' => $store->getId()])->setTemplateVars($vars)->setFrom($from)->addTo($to['email'], $to['name']);
$transport = $this->_transportBuilder->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
}
示例6: execute
public function execute()
{
$email = $this->getRequest()->getParam('email');
// $this->_objectManager->get('Ebizmarts\Mandrill\Helper\Data')->sendTestEmail($email);
$template = "mandrill_test_template";
$transport = $this->_transportBuilder->setTemplateIdentifier($template)->setFrom($this->_objectManager->get('Ebizmarts\\Mandrill\\Helper\\Data')->getTestSender())->addTo($email)->setTemplateVars([])->setTemplateOptions(['area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => 1])->getTransport();
$transport->sendMessage();
$response = new Object();
$response->setError(0);
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
$resultJson->setData($response->toArray());
return $resultJson;
}
示例7: _sendLogCleanEmail
/**
* Send Log Clean Warnings
*
* @return $this
*/
protected function _sendLogCleanEmail()
{
if (!$this->_errors) {
return $this;
}
if (!$this->_scopeConfig->getValue(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
return $this;
}
$this->inlineTranslation->suspend();
$transport = $this->_transportBuilder->setTemplateIdentifier($this->_scopeConfig->getValue(self::XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->setTemplateOptions(['area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $this->_storeManager->getStore()->getId()])->setTemplateVars(['warnings' => join("\n", $this->_errors)])->setFrom($this->_scopeConfig->getValue(self::XML_PATH_EMAIL_LOG_CLEAN_IDENTITY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->addTo($this->_scopeConfig->getValue(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
return $this;
}
示例8: _sendPopupCoupon
protected function _sendPopupCoupon($storeId)
{
$templateId = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_TEMPLATE_XML_PATH, $storeId);
$mailSubject = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_MAIL_SUBJECT, $storeId);
$tags = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_MANDRILL_TAG, $storeId) . "_{$storeId}";
$senderId = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::SENDER, $storeId);
$sender = array('name' => $this->_helper->getConfig("trans_email/ident_{$senderId}/name", $storeId), 'email' => $this->_helper->getConfig("trans_email/ident_{$senderId}/email", $storeId));
//coupon vars
$this->couponamount = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_DISCOUNT, $storeId);
$this->couponexpiredays = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_EXPIRE, $storeId);
$this->coupontype = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_DISCOUNTTYPE, $storeId);
$this->couponlength = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_LENGTH, $storeId);
$this->couponlabel = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_LABEL, $storeId);
$collection = $this->_objectManager->create('Ebizmarts\\AbandonedCart\\Model\\Popup')->getCollection()->addFieldToFilter('email', array('neq' => ''))->addFieldToFilter('processed', array('eq' => 0));
$mandrillHelper = $this->_objectManager->create('Ebizmarts\\Mandrill\\Helper\\Data');
foreach ($collection as $item) {
$email = $item->getEmail();
$emailArr = explode('@', $email);
$pseudoName = $emailArr[0];
if ($this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_AUTOMATIC, $storeId) == 2) {
list($couponCode, $discount, $toDate) = $this->_createNewCoupon($storeId, $email);
$vars = array('couponcode' => $couponCode, 'discount' => $discount, 'todate' => $toDate, 'name' => $pseudoName, 'tags' => array($tags));
} else {
$couponCode = $this->_helper->getConfig(\Ebizmarts\AbandonedCart\Model\Config::POPUP_COUPON_CODE);
$vars = array('couponcode' => $couponCode, 'name' => $pseudoName, 'tags' => array($tags));
}
$transport = $this->_transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(['area' => FrontNameResolver::AREA_CODE, 'store' => $storeId])->setSubject($mailSubject)->setTemplateVars($vars)->setFrom($sender)->addTo($email, $pseudoName)->getTransport();
$transport->sendMessage();
$item->setProcessed(1)->save();
$mandrillHelper->saveMail('review coupon', $email, $pseudoName, $couponCode, $storeId);
}
}
示例9: scheduledGenerateSitemaps
/**
* Generate sitemaps
*
* @return void
* @SuppressWarnings(PHPMD.UnusedLocalVariable)
*/
public function scheduledGenerateSitemaps()
{
$errors = [];
// check if scheduled generation enabled
if (!$this->_scopeConfig->isSetFlag(self::XML_PATH_GENERATION_ENABLED, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
return;
}
$collection = $this->_collectionFactory->create();
/* @var $collection \Magento\Sitemap\Model\ResourceModel\Sitemap\Collection */
foreach ($collection as $sitemap) {
/* @var $sitemap \Magento\Sitemap\Model\Sitemap */
try {
$sitemap->generateXml();
} catch (\Exception $e) {
$errors[] = $e->getMessage();
}
}
if ($errors && $this->_scopeConfig->getValue(self::XML_PATH_ERROR_RECIPIENT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
$translate = $this->_translateModel->getTranslateInline();
$this->_translateModel->setTranslateInline(false);
$this->_transportBuilder->setTemplateIdentifier($this->_scopeConfig->getValue(self::XML_PATH_ERROR_TEMPLATE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->setTemplateOptions(['area' => \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])->setTemplateVars(['warnings' => join("\n", $errors)])->setFrom($this->_scopeConfig->getValue(self::XML_PATH_ERROR_IDENTITY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->addTo($this->_scopeConfig->getValue(self::XML_PATH_ERROR_RECIPIENT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE));
$transport = $this->_transportBuilder->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
}
}
示例10: scheduledUpdateCurrencyRates
/**
* @param mixed $schedule
* @return void
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function scheduledUpdateCurrencyRates($schedule)
{
$importWarnings = [];
if (!$this->_scopeConfig->getValue(self::IMPORT_ENABLE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE) || !$this->_scopeConfig->getValue(self::CRON_STRING_PATH, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
return;
}
$errors = [];
$rates = [];
$service = $this->_scopeConfig->getValue(self::IMPORT_SERVICE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
if ($service) {
try {
$importModel = $this->_importFactory->create($service);
$rates = $importModel->fetchRates();
$errors = $importModel->getMessages();
} catch (\Exception $e) {
$importWarnings[] = __('FATAL ERROR:') . ' ' . __('We can\'t initialize the import model.');
}
} else {
$importWarnings[] = __('FATAL ERROR:') . ' ' . __('Please specify the correct Import Service.');
}
if (sizeof($errors) > 0) {
foreach ($errors as $error) {
$importWarnings[] = __('WARNING:') . ' ' . $error;
}
}
if (sizeof($importWarnings) == 0) {
$this->_currencyFactory->create()->saveRates($rates);
} else {
$this->inlineTranslation->suspend();
$this->_transportBuilder->setTemplateIdentifier($this->_scopeConfig->getValue(self::XML_PATH_ERROR_TEMPLATE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->setTemplateOptions(['area' => \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])->setTemplateVars(['warnings' => join("\n", $importWarnings)])->setFrom($this->_scopeConfig->getValue(self::XML_PATH_ERROR_IDENTITY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE))->addTo($this->_scopeConfig->getValue(self::XML_PATH_ERROR_RECIPIENT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE));
$transport = $this->_transportBuilder->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
}
}
示例11: testNewAccount
/**
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function testNewAccount()
{
$customerId = 1;
$customerStoreId = 2;
$customerEmail = 'email@email.com';
$customerData = ['key' => 'value'];
$customerName = 'Customer Name';
$templateIdentifier = 'Template Identifier';
$sender = 'Sender';
$customer = $this->getMock(\Magento\Customer\Api\Data\CustomerInterface::class, [], [], '', false);
$customer->expects($this->any())->method('getStoreId')->willReturn($customerStoreId);
$customer->expects($this->any())->method('getId')->willReturn($customerId);
$customer->expects($this->any())->method('getEmail')->willReturn($customerEmail);
$this->storeMock->expects($this->any())->method('getId')->willReturn($customerStoreId);
$this->storeManagerMock->expects($this->once())->method('getStore')->with($customerStoreId)->willReturn($this->storeMock);
$this->customerRegistryMock->expects($this->once())->method('retrieveSecureData')->with($customerId)->willReturn($this->customerSecureMock);
$this->dataProcessorMock->expects($this->once())->method('buildOutputDataArray')->with($customer, \Magento\Customer\Api\Data\CustomerInterface::class)->willReturn($customerData);
$this->customerViewHelperMock->expects($this->any())->method('getCustomerName')->with($customer)->willReturn($customerName);
$this->customerSecureMock->expects($this->once())->method('addData')->with($customerData)->willReturnSelf();
$this->customerSecureMock->expects($this->once())->method('setData')->with('name', $customerName)->willReturnSelf();
$this->scopeConfigMock->expects($this->at(0))->method('getValue')->with(EmailNotification::XML_PATH_REGISTER_EMAIL_TEMPLATE, ScopeInterface::SCOPE_STORE, $customerStoreId)->willReturn($templateIdentifier);
$this->scopeConfigMock->expects($this->at(1))->method('getValue')->with(EmailNotification::XML_PATH_REGISTER_EMAIL_IDENTITY, ScopeInterface::SCOPE_STORE, $customerStoreId)->willReturn($sender);
$transport = $this->getMock(\Magento\Framework\Mail\TransportInterface::class, [], [], '', false);
$this->transportBuilderMock->expects($this->once())->method('setTemplateIdentifier')->with($templateIdentifier)->willReturnSelf();
$this->transportBuilderMock->expects($this->once())->method('setTemplateOptions')->with(['area' => Area::AREA_FRONTEND, 'store' => $customerStoreId])->willReturnSelf();
$this->transportBuilderMock->expects($this->once())->method('setTemplateVars')->with(['customer' => $this->customerSecureMock, 'back_url' => '', 'store' => $this->storeMock])->willReturnSelf();
$this->transportBuilderMock->expects($this->once())->method('setFrom')->with($sender)->willReturnSelf();
$this->transportBuilderMock->expects($this->once())->method('addTo')->with($customerEmail, $customerName)->willReturnSelf();
$this->transportBuilderMock->expects($this->once())->method('getTransport')->willReturn($transport);
$transport->expects($this->once())->method('sendMessage');
$this->model->newAccount($customer, EmailNotification::NEW_ACCOUNT_EMAIL_REGISTERED, '', $customerStoreId);
}
示例12: informCustomer
public function informCustomer(\Magento\Sales\Model\Order $order, $amount, $currency)
{
try {
if (!($order_increment_id = $order->getRealOrderId()) or !($method_config = $this->_s2pModel->getFullConfigArray())) {
return false;
}
$siteUrl = $order->getStore()->getBaseUrl();
$siteName = $this->_helper->getStoreName();
$supportEmail = $this->_helper->getStoreConfig('trans_email/ident_support/email');
$supportName = $this->_helper->getStoreConfig('trans_email/ident_support/name');
$payment_details_arr['site_url'] = $siteUrl;
$payment_details_arr['order_increment_id'] = $order_increment_id;
$payment_details_arr['site_name'] = $siteName;
$payment_details_arr['customer_name'] = $order->getCustomerName();
$payment_details_arr['order_date'] = $order->getCreatedAtFormatted(\IntlDateFormatter::LONG);
$payment_details_arr['support_email'] = $supportEmail;
$payment_details_arr['total_paid'] = number_format($amount / 100, 2);
$payment_details_arr['currency'] = $currency;
$transport = $this->_transportBuilder->setTemplateIdentifier($method_config['smart2pay_email_payment_confirmation'])->setTemplateOptions(['area' => \Magento\Framework\App\Area::AREA_ADMINHTML, 'store' => $order->getStore()->getId()])->setTemplateVars($payment_details_arr)->setFrom(['name' => $supportName, 'email' => $supportEmail])->addTo($order->getCustomerEmail())->getTransport();
$transport->sendMessage();
} catch (\Magento\Framework\Exception\MailException $e) {
$this->_s2pLogger->write('Error sending customer informational email to [' . $order->getCustomerEmail() . ']', 'email_template');
$this->_s2pLogger->write($e->getMessage(), 'email_exception');
} catch (\Exception $e) {
$this->_s2pLogger->write($e->getMessage(), 'exception');
}
return true;
}
示例13: sendEmailTemplate
/**
* Send corresponding email template
*
* @param CustomerInterface $customer
* @param string $template configuration path of email template
* @param string $sender configuration path of email identity
* @param array $templateParams
* @param int|null $storeId
* @param string $email
* @return void
*/
private function sendEmailTemplate($customer, $template, $sender, $templateParams = [], $storeId = null, $email = null)
{
$templateId = $this->scopeConfig->getValue($template, 'store', $storeId);
if ($email === null) {
$email = $customer->getEmail();
}
$transport = $this->transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(['area' => 'frontend', 'store' => $storeId])->setTemplateVars($templateParams)->setFrom($this->scopeConfig->getValue($sender, 'store', $storeId))->addTo($email, $this->customerViewHelper->getCustomerName($customer))->getTransport();
$transport->sendMessage();
}
示例14: sendEmailTemplate
/**
* Send corresponding email template
*
* @param CustomerInterface $customer
* @param string $template configuration path of email template
* @param string $sender configuration path of email identity
* @param array $templateParams
* @param int|null $storeId
* @param string $email
* @return $this
*/
protected function sendEmailTemplate($customer, $template, $sender, $templateParams = [], $storeId = null, $email = null)
{
$templateId = $this->scopeConfig->getValue($template, ScopeInterface::SCOPE_STORE, $storeId);
if ($email === null) {
$email = $customer->getEmail();
}
$transport = $this->transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(['area' => Area::AREA_FRONTEND, 'store' => $storeId])->setTemplateVars($templateParams)->setFrom($this->scopeConfig->getValue($sender, ScopeInterface::SCOPE_STORE, $storeId))->addTo($email, $this->customerViewHelper->getCustomerName($customer))->getTransport();
$transport->sendMessage();
return $this;
}
示例15: prepareEmailSend
/**
* @param $email
* @param $templateIdentifier
* @param $sender
* @param $storeId
* @param $customerName
*/
protected function prepareEmailSend($email, $templateIdentifier, $sender, $storeId, $customerName)
{
$transport = $this->getMockBuilder('Magento\\Framework\\Mail\\TransportInterface')->getMock();
$this->transportBuilder->expects($this->any())->method('setTemplateIdentifier')->with($templateIdentifier)->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setTemplateOptions')->with(['area' => Area::AREA_FRONTEND, 'store' => $storeId])->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setTemplateVars')->with(['customer' => $this->customerSecure, 'store' => $this->store])->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('setFrom')->with($sender)->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('addTo')->with($email, $customerName)->willReturnSelf();
$this->transportBuilder->expects($this->any())->method('getTransport')->willReturn($transport);
$transport->expects($this->any())->method('sendMessage');
}