public function run($request) { $config = SiteConfig::current_site_config(); $default = Email::config()->admin_email; $default_config = $config->DefaultFromEmail; $member = Member::currentUser(); $to = $request->getVar('email'); $template = $request->getVar('template'); $disabled = $request->getVar('disabled'); if ($disabled) { MandrillMailer::setSendingDisabled(); } if ($default) { echo "Default email address is {$default}<br/>"; } else { echo "<div style='color:red'>Default email is not set. You should define one!</div>"; } if ($default_config) { echo "Default email set in siteconfig is {$default_config}<br/>"; } echo "The email will be sent to admin email, current member or an email passed in the url, like ?email=myemail@test.com<br/>"; echo "A default email is used by default. You can use a preset template by setting ?template=mytemplate<br/>"; echo "To prevent email from being sent, you can pass ?disabled=1<br/>"; echo '<hr/>'; if (!$default && $default_config) { $default = $default_config; } if (!$member && !$to) { if (!$default) { echo 'There are no recipient defined!'; exit; } else { $to = $default; } } if ($template) { $emailTemplate = EmailTemplate::getByCode($template); $email = $emailTemplate->getEmail(); $email->setSubject('Template ' . $template . ' from ' . $config->Title); $email->setSampleRequiredObjects(); } else { $email = new MandrillEmail(); $email->setSampleContent(); $email->setSubject('Sample email from ' . $config->Title); } if (!$to) { $email->setToMember($member); } else { $member = Member::get()->filter('Email', $to)->first(); if ($member) { $email->setToMember($member); } else { $email->setTo($to); } } echo 'Sending to ' . htmlentities($email->To()) . '<br/>'; echo 'Using theme : ' . $email->getTheme() . '<br/>'; echo '<hr/>'; $res = $email->send(); // Success! if ($res && is_array($res)) { echo '<div style="color:green">Successfully sent your email</div>'; echo 'Recipient : ' . $res[0] . '<br/>'; echo 'Additionnal headers : <br/>'; foreach ($res[3] as $k => $v) { echo "{$k} : {$v}" . '<br/>'; } echo 'Content : ' . $res[2]; } else { echo '<div style="color:red">Failed to send email</div>'; echo 'Error is : ' . MandrillMailer::getInstance()->getLastError(); } }