/** * Save mail on submit * * @param Mail $mail * @return void */ protected function saveMail(Mail &$mail = null) { $marketingInfos = SessionUtility::getMarketingInfos(); $mail->setPid(FrontendUtility::getStoragePage($this->settings['main']['pid']))->setSenderMail($this->mailRepository->getSenderMailFromArguments($mail))->setSenderName($this->mailRepository->getSenderNameFromArguments($mail))->setSubject($this->settings['receiver']['subject'])->setReceiverMail($this->settings['receiver']['email'])->setBody(DebugUtility::viewArray($this->mailRepository->getVariablesWithMarkersFromMail($mail)))->setSpamFactor(SessionUtility::getSpamFactorFromSession())->setTime(time() - SessionUtility::getFormStartFromSession($mail->getForm()->getUid(), $this->settings))->setUserAgent(GeneralUtility::getIndpEnv('HTTP_USER_AGENT'))->setMarketingRefererDomain($marketingInfos['refererDomain'])->setMarketingReferer($marketingInfos['referer'])->setMarketingCountry($marketingInfos['country'])->setMarketingMobileDevice($marketingInfos['mobileDevice'])->setMarketingFrontendLanguage($marketingInfos['frontendLanguage'])->setMarketingBrowserLanguage($marketingInfos['browserLanguage'])->setMarketingPageFunnel($marketingInfos['pageFunnel']); if (FrontendUtility::isLoggedInFrontendUser()) { $mail->setFeuser($this->userRepository->findByUid(FrontendUtility::getPropertyFromLoggedInFrontendUser('uid'))); } if (!ConfigurationUtility::isDisableIpLogActive()) { $mail->setSenderIp(GeneralUtility::getIndpEnv('REMOTE_ADDR')); } if ($this->settings['main']['optin'] || $this->settings['db']['hidden']) { $mail->setHidden(true); } foreach ($mail->getAnswers() as $answer) { $answer->setPid(FrontendUtility::getStoragePage($this->settings['main']['pid'])); } $this->mailRepository->add($mail); $this->persistenceManager->persistAll(); }
/** * Start different checks to increase spam indicator * * @param Mail $mail * @return void */ protected function runSpamPreventationMethods($mail) { $settingsSpamShieldIndicator = $this->settings['spamshield.']['indicator.']; $this->honeypodCheck($settingsSpamShieldIndicator['honeypod']); $this->linkCheck($mail, $settingsSpamShieldIndicator['link'], $settingsSpamShieldIndicator['linkLimit']); $this->nameCheck($mail, $settingsSpamShieldIndicator['name']); $this->sessionCheck($settingsSpamShieldIndicator['session'], SessionUtility::getFormStartFromSession($mail->getForm()->getUid(), $this->settings)); $this->uniqueCheck($mail, $settingsSpamShieldIndicator['unique']); $this->blacklistStringCheck($mail, $settingsSpamShieldIndicator['blacklistString']); $this->blacklistIpCheck($settingsSpamShieldIndicator['blacklistIp'], GeneralUtility::getIndpEnv('REMOTE_ADDR')); }