magento2 发邮件

class DealerWholesale extends \Magento\Framework\Model\AbstractModel
{
    /**
     * @var \Magento\Framework\Mail\Template\TransportBuilder
     */
    protected $_transportBuilder;

    /**
     * @var \Magento\Framework\Translate\Inline\StateInterface
     */
    protected $inlineTranslation;

    /**
     * @var \Magento\Store\Model\StoreManagerInterface
     */
    protected $_storeManager;

    /**
     * @var \Magento\Framework\App\Config\ScopeConfigInterface
     */
    protected $scopeConfig;

    public function __construct(
        \Magento\Framework\Model\Context $context,
        \Magento\Framework\Registry $registry,
        \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
        \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
    )
    {
        $this->_transportBuilder = $transportBuilder;
        $this->_storeManager = $storeManager;
        $this->inlineTranslation = $inlineTranslation;
        $this->scopeConfig = $scopeConfig;

        parent::__construct($context, $registry);
    }

    /**
     * 发邮件
     * @param array $tpl_vars 模板变量数组
     * @return bool
     * @throws \Magento\Framework\Exception\MailException
     */
    public function sendEmail($tpl_vars=[])
    {
        $receiver_email = $this->_getConfig('email');
        $receiver_name = $this->_getConfig('name');

        //增加模板变量
        $tpl_vars['recipient'] = $receiver_name;
        $tpl_vars['store'] = $this->_storeManager->getStore();

        try {
            $this->inlineTranslation->suspend();
            $store = $this->_storeManager->getStore()->getId();
            $transport = $this->_transportBuilder->setTemplateIdentifier('dealer_wholesale_email_template')
                ->setTemplateOptions(['area' => 'frontend', 'store' => $store])
                ->setTemplateVars($tpl_vars)
                ->setFrom('general')
                ->addTo($receiver_email, $receiver_name)
                ->getTransport();
            $transport->sendMessage();
            $this->inlineTranslation->resume();

            return true;
        }catch (\Magento\Framework\Exception\MailException $e) {
            return false;
        }
    }

    //获取系统后台配置
    protected function _getConfig($field) {
        return $this->scopeConfig->getValue(
            'trans_email/dealer_wholesale/' . $field,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

转载于:https://my.oschina.net/ganfanghua/blog/3027395

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值