Craft\Formerly_SubmissionsService::sendSubmissionEmails PHP Method

sendSubmissionEmails() public method

public sendSubmissionEmails ( craft\Formerly_SubmissionModel $submission )
$submission craft\Formerly_SubmissionModel
    public function sendSubmissionEmails(Formerly_SubmissionModel $submission)
    {
        if (!$submission) {
            return false;
        }
        $sendEmail = true;
        $writeEmailToFilePath = '';
        //Check settings
        if (craft()->config->exists(Formerly_ConfigSettings::SettingsGroupName) && array_key_exists(Formerly_ConfigSettings::SendEmails, craft()->config->get(Formerly_ConfigSettings::SettingsGroupName))) {
            $sendEmail = craft()->config->get(Formerly_ConfigSettings::SettingsGroupName)[Formerly_ConfigSettings::SendEmails];
        }
        if (craft()->config->exists(Formerly_ConfigSettings::SettingsGroupName) && array_key_exists(Formerly_ConfigSettings::writeEmailBodyToFilePath, craft()->config->get(Formerly_ConfigSettings::SettingsGroupName))) {
            $writeEmailToFilePath = craft()->config->get(Formerly_ConfigSettings::SettingsGroupName)[Formerly_ConfigSettings::writeEmailBodyToFilePath];
        }
        $form = $submission->getForm();
        if ($form->emails !== null && ($sendEmail || strlen($writeEmailToFilePath) > 0)) {
            foreach ($form->emails as $emailDef) {
                if (empty($emailDef['to'])) {
                    continue;
                }
                $email = new EmailModel();
                $email->toEmail = $this->_renderSubmissionTemplate($emailDef['to'], $submission);
                $email->subject = !empty($emailDef['subject']) ? $this->_renderSubmissionTemplate($emailDef['subject'], $submission) : 'Website Enquiry';
                if (!empty($emailDef['from'])) {
                    $from = $this->_renderSubmissionTemplate($emailDef['from'], $submission);
                    // https://regex101.com/r/yI0hL1/1
                    preg_match('/^(.+)\\<(.+)\\>$/', $from, $matches);
                    if (count($matches) >= 3) {
                        // The provided from email is in the format Name <email>.
                        $email->fromName = trim($matches[1]);
                        $email->fromEmail = trim($matches[2]);
                    } else {
                        // Note: If no from email is set, the default is the craft admin email address.
                        $email->fromEmail = $from;
                    }
                }
                if (!empty($emailDef['body'])) {
                    $email->body = $this->_renderSubmissionTemplate($emailDef['body'], $submission);
                    $email->htmlBody = $email->body;
                } else {
                    $email->body = $submission->getSummary();
                    $email->htmlBody = $email->body;
                }
                if (!empty($email->body) && $sendEmail) {
                    craft()->email->sendEmail($email);
                }
                if (strlen($writeEmailToFilePath) > 0) {
                    $file = $writeEmailToFilePath . '/form-' . $form->id . '-submission-' . $submission->id . '.json';
                    $jsonEmail = new \StdClass();
                    $jsonEmail->toEmail = $email->toEmail;
                    $jsonEmail->fromName = $email->fromName;
                    $jsonEmail->fromEmail = $email->fromEmail;
                    $jsonEmail->subject = $email->subject;
                    $jsonEmail->body = $email->body;
                    file_put_contents($file, json_encode($jsonEmail));
                }
            }
        }
    }