public function sendPriceAlarmNotification($params, $alarm, $subject = null)
    {
        $this->_clearMailer();
        $shop = $this->_getShop();

        //set mail params (from, fromName, smtp)
        $this->_setMailParams($shop);

        $alarmLang = $alarm->oxpricealarm__oxlang->value;

        $article = oxNew(\OxidEsales\Eshop\Application\Model\Article::class);
        //$article->setSkipAbPrice( true );
        $article->loadInLang($alarmLang, $params['aid']);
        $lang = \OxidEsales\Eshop\Core\Registry::getLang();

        // create messages
        $smarty = $this->_getSmarty();
        $this->setViewData("product", $article);
        $this->setViewData("email", $params['email']);
        $this->setViewData("bidprice", $lang->formatCurrency($alarm->oxpricealarm__oxprice->value));

        // Process view data array through oxOutput processor
        $this->_processViewArray();

        $this->setRecipient($shop->oxshops__oxorderemail->value, $shop->oxshops__oxname->getRawValue());
        $this->setSubject(($subject !== null) ? $subject : $lang->translateString('PRICE_ALERT_FOR_PRODUCT', $alarmLang) . " " . $article->oxarticles__oxtitle->getRawValue());
        $this->setBody($smarty->fetch($this->_sOwnerPricealarmTemplate));
        $this->setFrom($params['email'], "");
        $this->setReplyTo($params['email'], "");

        return $this->send();
    }