예제 #1
0
 /**
  * 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'));
 }