/** * @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(); }
/** * 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(); }
/** * 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; }