Esempio n. 1
0
 /**
  * @param User $user
  */
 public function sendResetEmail(User $user)
 {
     $mailer = $this->mailHelper->getMailer();
     $resetToken = $this->getResetToken($user);
     $resetLink = $this->router->generate('mautic_user_passwordresetconfirm', ['token' => $resetToken], true);
     $mailer->setTo([$user->getEmail() => $user->getName()]);
     $mailer->setSubject($this->translator->trans('mautic.user.user.passwordreset.subject'));
     $text = $this->translator->trans('mautic.user.user.passwordreset.email.body', ['%name%' => $user->getFirstName(), '%resetlink%' => '<a href="' . $resetLink . '">' . $resetLink . '</a>']);
     $text = str_replace('\\n', "\n", $text);
     $html = nl2br($text);
     $mailer->setBody($html);
     $mailer->setPlainText(strip_tags($text));
     $mailer->send();
 }
Esempio n. 2
0
 /**
  * FormSubscriber constructor.
  *
  * @param IpLookupHelper $ipLookupHelper
  * @param AuditLogModel  $auditLogModel
  * @param MailHelper     $mailer
  */
 public function __construct(IpLookupHelper $ipLookupHelper, AuditLogModel $auditLogModel, MailHelper $mailer)
 {
     $this->ipLookupHelper = $ipLookupHelper;
     $this->auditLogModel = $auditLogModel;
     $this->mailer = $mailer->getMailer();
 }
Esempio n. 3
0
 /**
  * Send an email to lead(s)
  *
  * @param       $email
  * @param       $users
  * @param mixed $lead
  * @param array $tokens
  * @param array $assetAttachments
  * @param bool  $saveStat
  *
  * @return mixed
  * @throws \Doctrine\ORM\ORMException
  */
 public function sendEmailToUser($email, $users, $lead = null, $tokens = [], $assetAttachments = [], $saveStat = true)
 {
     if (!($emailId = $email->getId())) {
         return false;
     }
     if (!is_array($users)) {
         $user = ['id' => $users];
         $users = [$user];
     }
     //get email settings
     $emailSettings =& $this->getEmailSettings($email, false);
     //noone to send to so bail
     if (empty($users)) {
         return false;
     }
     $mailer = $this->mailHelper->getMailer();
     $mailer->setLead($lead, true);
     $mailer->setTokens($tokens);
     $mailer->setEmail($email, false, $emailSettings[$emailId]['slots'], $assetAttachments, !$saveStat);
     $errors = [];
     foreach ($users as $user) {
         $idHash = uniqid();
         $mailer->setIdHash($idHash);
         if (!is_array($user)) {
             $id = $user;
             $user = ['id' => $id];
         } else {
             $id = $user['id'];
         }
         if (!isset($user['email'])) {
             $userEntity = $this->userModel->getEntity($id);
             $user['email'] = $userEntity->getEmail();
             $user['firstname'] = $userEntity->getFirstName();
             $user['lastname'] = $userEntity->getLastName();
         }
         if (!$mailer->setTo($user['email'], $user['firstname'] . ' ' . $user['lastname'])) {
             $errors[] = "{$user['email']}: " . $this->translator->trans('mautic.email.bounce.reason.bad_email');
         } else {
             if (!$mailer->queue(true)) {
                 $errorArray = $mailer->getErrors();
                 unset($errorArray['failures']);
                 $errors[] = "{$user['email']}: " . implode('; ', $errorArray);
             }
             if ($saveStat) {
                 $saveEntities[] = $mailer->createEmailStat(false, $user['email']);
             }
         }
     }
     //flush the message
     if (!$mailer->flushQueue()) {
         $errorArray = $mailer->getErrors();
         unset($errorArray['failures']);
         $errors[] = implode('; ', $errorArray);
     }
     if (isset($saveEntities)) {
         $this->getStatRepository()->saveEntities($saveEntities);
     }
     //save some memory
     unset($mailer);
     return $errors;
 }