public function sendWelcomeEmail($UserID, $Password, $RegisterType = 'Add', $AdditionalData = null)
{
$Session = Gdn::session();
$Sender = $this->getID($Session->UserID);
$User = $this->getID($UserID);
if (!ValidateEmail($User->Email)) {
return;
}
$AppTitle = Gdn::config('Garden.Title');
$Email = new Gdn_Email();
$Email->subject(sprintf(t('[%s] Welcome Aboard!'), $AppTitle));
$Email->to($User->Email);
$emailTemplate = $Email->getEmailTemplate();
$Data = [];
$Data['User'] = arrayTranslate((array) $User, ['UserID', 'Name', 'Email']);
$Data['Sender'] = arrayTranslate((array) $Sender, ['Name', 'Email']);
$Data['Title'] = $AppTitle;
if (is_array($AdditionalData)) {
$Data = array_merge($Data, $AdditionalData);
}
$Data['EmailKey'] = valr('Attributes.EmailKey', $User);
$message = '<p>' . formatString(t('Hello {User.Name}!'), $Data) . ' ';
$message .= $this->getEmailWelcome($RegisterType, $User, $Data, $Password);
// Add the email confirmation key.
if ($Data['EmailKey']) {
$emailUrlFormat = '{/entry/emailconfirm,exurl,domain}/{User.UserID,rawurlencode}/{EmailKey,rawurlencode}';
$url = formatString($emailUrlFormat, $Data);
$message .= '<p>' . t('You need to confirm your email address before you can continue.') . '</p>';
$emailTemplate->setButton($url, t('Confirm My Email Address'));
} else {
$emailTemplate->setButton(externalUrl('/'), t('Access the Site'));
}
$emailTemplate->setMessage($message);
$emailTemplate->setTitle(t('Welcome Aboard!'));
$Email->setEmailTemplate($emailTemplate);
try {
$Email->send();
} catch (Exception $e) {
if (debug()) {
throw $e;
}
}
}