user->hasSessionContext('mgr')) return 'Unauthorized'; /* save some typing */ $sp = $scriptProperties; /* get the MODX mailer object */ $modx->getService('mail', 'mail.modPHPMailer'); /* set default values */ $output = ''; $debug = $modx->getOption('debug',$sp,false); if (is_string($debug) && strlen($debug) > 1) { $debug = stristr('no',$debug)? false : true; } $tpl = $modx->getOption('msgTpl',$scriptProperties,false); $message = $modx->getOption('message',$sp,false); $message = empty($message)? 'Default Message' : $message; $subject = $modx->getOption('subject',$sp); $subject = empty($subject)? 'Default Subject' : $subject; $to = $modx->getOption('to',$sp); $to = empty($to)? $modx->getOption('emailsender') : $to; $toName = $modx->getOption('toName',$sp); $toName = empty($toName)? $modx->getOption('emailsender') : $to; $fromName = $modx->getOption('fromName',$sp); $fromName = empty($fromName)? 'QuickEmail' : $fromName; $emailSender = $modx->getOption('emailSender',$sp); $emailSender = empty($emailSender) ? $modx->getOption('emailsender',null,false): $emailSender; $replyTo = $modx->getOption('replyTo',$sp); $replyTo = empty($replyTo)? $modx->getOption('emailsender'): $replyTo; $cc = $modx->getOption('cc', $sp, ''); $bcc = $modx->getOption('bcc', $sp, ''); $html = $modx->getOption('allowHtml',$sp,false); if (is_string($html) && strlen($html) > 1) { $html = stristr('no',$html)? false : true; } $hideOutput = $modx->getOption('hideOutput',$sp,false); if (is_string($hideOutput) && strlen($hideOutput) > 1) { $hideOutput = stristr('yes',$hideOutput)? true : false; } $failureMessage = $modx->getOption('failureMessage',$sp,false); $successMessage = $modx->getOption('successMessage',$sp,false); $errorHeader = $modx->getOption('errorHeader',$sp,false); if (! empty ($tpl) ) { $msg = $modx->getChunk($tpl); if (empty($msg) && $debug) { $output .= '
Error: Cannot find Tpl chunk: ' . $tpl; } } else { $msg = $message; } if (! $msg) { $msg = 'Default Message'; } if ($debug) { $output .= '

System Settings (used if property is missing):

'; $output .= 'emailsender System Setting: ' .$modx->getOption('emailsender',$sp); $output .= '
site_name System Setting: ' .$modx->getOption('site_name',$sp); $output .= '

Properties (from parameters, property set, or snippet default properties:

'; $output .= 'Tpl chunk name: ' . $modx->getOption('msgTpl',$sp); $output .= '
subject: ' . $modx->getOption('subject',$sp); $output .= '
to: ' . $modx->getOption('to',$sp,'empty'); $output .= '
fromName: ' . $modx->getOption('fromName',$sp); $output .= '
replyTo: ' . $modx->getOption('replyTo',$sp); $output .= '
emailSender: ' . $modx->getOption('emailSender',$sp); $output .= '
allowHtml: ' . $modx->getOption('allowHtml',$sp); $output .= '
message: ' . $modx->getOption('message',$sp); $output .= '

Final Values (actually used when sending email):

'; $output .= 'subject: ' .$subject; $output .= '
to: ' .$to; $output .= '
fromName: ' .$fromName; $output .= '
replyTo: ' .$replyTo; $output .= '
emailSender: ' .$emailSender; $output .= '
allowHtml: ' . $html; $output .= '
Message Body: ' . $msg; } $modx->mail->set(modMail::MAIL_BODY, $msg); $modx->mail->set(modMail::MAIL_FROM, $emailSender); $modx->mail->set(modMail::MAIL_FROM_NAME, $fromName); $modx->mail->set(modMail::MAIL_SENDER, $emailSender); $modx->mail->set(modMail::MAIL_SUBJECT, $subject); $modx->mail->address('to', $to, $toName); $modx->mail->address('reply-to', $replyTo); if (! empty ($cc)) { $modx->mail->address('cc', $cc); } if (!empty ($bcc)) { $modx->mail->address('bcc', $bcc); } $modx->mail->setHTML($html); if ($debug) { ob_start(); echo '
';

    if ($modx->getOption('mail_use_smtp') ) {
        $modx->mail->mailer->SMTPDebug = 2;
    }
}
$sent = $modx->mail->send();

if ($debug) {
    echo '
'; $ob = ob_get_contents(); ob_end_clean(); } $modx->mail->reset(); if ($sent) { $output .= $successMessage; if ($debug) { $output .= $ob; } } else { $output .= $failureMessage; $output .= $errorHeader; $output .= $modx->mail->mailer->ErrorInfo; if (!empty($ob)) { $output .= $smtpErrorHeader; } $output .= $ob; } $output = $hideOutput && (! $debug )? '' : $output . "

"; return $output;