/** * @param $tokens * @param $config * @param MauticFactory $factory * @param Lead $lead */ public static function sendEmail($tokens, $config, MauticFactory $factory, Lead $lead) { $mailer = $factory->getMailer(); $emails = !empty($config['to']) ? explode(',', $config['to']) : array(); $mailer->setTo($emails); $leadEmail = $lead->getEmail(); if (!empty($leadEmail)) { // Reply to lead for user convenience $mailer->setReplyTo($leadEmail); } if (!empty($config['cc'])) { $emails = explode(',', $config['cc']); $mailer->setCc($emails); } if (!empty($config['bcc'])) { $emails = explode(',', $config['bcc']); $mailer->setBcc($emails); } $mailer->setSubject($config['subject']); $mailer->setTokens($tokens); $mailer->setBody($config['message']); $mailer->parsePlainText($config['message']); $mailer->send(); if ($config['copy_lead'] && !empty($leadEmail)) { // Send copy to lead $mailer->reset(); $mailer->setTo($leadEmail); $mailer->setSubject($config['subject']); $mailer->setTokens($tokens); $mailer->setBody($config['message']); $mailer->parsePlainText($config['message']); $mailer->send(); } }
/** * @param $tokens * @param $config * @param MauticFactory $factory * @param Lead $lead */ public static function sendEmail($tokens, $config, MauticFactory $factory, Lead $lead) { // replace line brakes with <br> for textarea values if ($tokens) { foreach ($tokens as $token => &$value) { $value = nl2br(html_entity_decode($value)); } } $leadEmail = $lead->getEmail(); $mailer = $factory->getMailer(); $emails = !empty($config['to']) ? array_fill_keys(explode(',', $config['to']), null) : []; if (!empty($emails)) { $mailer->setTo($emails); if (!empty($leadEmail)) { // Reply to lead for user convenience $mailer->setReplyTo($leadEmail); } if (!empty($config['cc'])) { $emails = array_fill_keys(explode(',', $config['cc']), null); $mailer->setCc($emails); } if (!empty($config['bcc'])) { $emails = array_fill_keys(explode(',', $config['bcc']), null); $mailer->setBcc($emails); } $mailer->setSubject($config['subject']); $mailer->addTokens($tokens); $mailer->setBody($config['message']); $mailer->parsePlainText($config['message']); $mailer->send(true); } if ($config['copy_lead'] && !empty($leadEmail)) { // Send copy to lead $mailer->reset(); $mailer->setLead($lead->getProfileFields()); $mailer->setTo($leadEmail); $mailer->setSubject($config['subject']); $mailer->addTokens($tokens); $mailer->setBody($config['message']); $mailer->parsePlainText($config['message']); $mailer->send(true); } }
/** * @param Lead $lead * * @return mixed */ public function getAvatar(Lead $lead) { $preferred = $lead->getPreferredProfileImage(); $socialData = $lead->getSocialCache(); $leadEmail = $lead->getEmail(); if ($preferred == 'custom') { if ($fmtime = filemtime($this->getAvatarPath(true) . '/avatar' . $lead->getId())) { // Append file modified time to ensure the latest is used by browser $img = $this->factory->getHelper('template.assets')->getUrl($this->getAvatarPath() . '/avatar' . $lead->getId() . '?' . $fmtime, null, null, false, true); } } elseif (isset($socialData[$preferred]) && !empty($socialData[$preferred]['profile']['profileImage'])) { $img = $socialData[$preferred]['profile']['profileImage']; } if (empty($img)) { // Default to gravatar if others failed if (!empty($leadEmail)) { $img = $this->factory->getHelper('template.gravatar')->getImage($leadEmail); } else { $img = $this->getDefaultAvatar(); } } return $img; }
/** * Add a do not contact entry for the lead * * @param Lead $lead * @param string $emailAddress * @param string $reason * @param bool|true $persist * @param bool|false $manual * * @return DoNotEmail|bool * @throws \Doctrine\DBAL\DBALException */ public function setDoNotContact(Lead $lead, $emailAddress = '', $reason = '', $persist = true, $manual = false) { if (empty($emailAddress)) { $emailAddress = $lead->getEmail(); if (empty($emailAddress)) { return false; } } $em = $this->factory->getEntityManager(); $repo = $em->getRepository('MauticEmailBundle:Email'); if (!$repo->checkDoNotEmail($emailAddress)) { $dnc = new DoNotEmail(); $dnc->setLead($lead); $dnc->setEmailAddress($emailAddress); $dnc->setDateAdded(new \DateTime()); $dnc->setUnsubscribed(); $dnc->setManual($manual); $dnc->setComments($reason); if ($persist) { $repo->saveEntity($dnc); } else { $lead->addDoNotEmailEntry($dnc); return $dnc; } } return false; }
/** * {@inheritDoc} */ public function getEmail() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getEmail', array()); return parent::getEmail(); }