public function post_create() { $rules = array('template' => 'required|send_email'); $validation = Email\Validator::make(Input::all(), $rules)->speaks(ADM_LANG); if ($validation->passes()) { // Get email service type $email_protocol = Config::get('settings::core.mail_protocol'); $email_address = ''; if (isset($email_protocol) and !empty($email_protocol)) { switch ($email_protocol) { case 'mail': case 'sendmail': $email_address = Config::get('settings::core.server_email'); break; case 'smtp': $email_address = Config::get('settings::core.mail_smtp_user'); break; default: \Session::flash('message', __('email::lang.Your email protocol settings are invalid')->get(ADM_LANG)); \Session::flash('message_type', 'error'); return Redirect::to(ADM_URI . '/email/new'); break; } } $email_type = $validation->attributes['email_type'] == 'html' ? true : false; $mailer = new Email\Message(); // new xblade to parse the email template $xblade = new Xblade(); $xblade->scopeGlue(':'); // data to be passed to email template $data['url']['base'] = URL::base(); $data['settings']['site_name'] = Config::get('settings::core.site_name'); $data['request']['ip'] = Request::ip(); $data['request']['user_agent'] = implode(', ', Request::header('user-agent')); $data['request']['languages'] = implode(', ', Request::languages()); foreach ($validation->attributes['email_list'] as $email) { $data['user'] = Users\Model\User::where_email($email)->first(); $mailer::to($email)->from($email_address)->subject($xblade->parse($validation->attributes['subject'], $data))->body($xblade->parse($validation->attributes['email_body'], $data))->html($email_type)->send(); } \Session::flash('message', __('email::lang.Email was successfully sent')->get(ADM_LANG)); \Session::flash('message_type', 'success'); return Redirect::to(ADM_URI . '/email/new'); } else { return Redirect::to(ADM_URI . '/email/new')->with_input()->with_errors($validation->errors); } }
<?php /* |-------------------------------------------------------------------------- | Event listner for new user registration |-------------------------------------------------------------------------- | | If email confirmation is enabled send an email to Admin when a new | user registers | */ Event::listen('registration.user_signup', function ($user) { $send_email_to_admin = Config::get('settings::core.email_admin_on_registration'); if ($send_email_to_admin == 'yes') { // new xblade to parse the email template $xblade = new Xblade(); $xblade->scopeGlue(':'); // data to be passed to email template $data['user'] = $user; $data['url']['base'] = URL::base(); $data['settings']['site_name'] = Config::get('settings::core.site_name'); $data['request']['ip'] = Request::ip(); $data['request']['user_agent'] = implode(', ', Request::header('user-agent')); $data['request']['languages'] = implode(', ', Request::languages()); // get email template based on settings $email_address = Config::get('settings::core.server_email'); $template_id = Config::get('settings::core.admin_registration_email_template'); $email_data = Email\Model\Template::find($template_id); //send email to Website Administrator Email\Message::to($email_address)->from($email_address)->subject($xblade->parse($email_data->subject, $data))->body($xblade->parse($email_data->body, $data))->html($email_data->type)->send(); }
public function post_pwreset() { $rules = array('email' => 'required|email|account_exists'); $messages = array('account_exists' => Lang::line('registration::lang.This email was not found.')->get(APP_LANG)); $account = null; Validator::register('account_exists', function ($attribute, $value, $parameters) use(&$account) { $account = Users\Model\User::where('email', '=', Input::get('email'))->first(); if (isset($account) and !empty($account)) { return true; } return false; }); $validation = Validator::make(Input::all(), $rules, $messages); if ($validation->passes()) { $pwreset_record = new Registration\Model\Code(); $pwreset_record->user_id = $account->id; $pwreset_record->code = Mwi_Core::keygen(); $pwreset_record->save(); // send password reset email // new xblade to parse the email template $xblade = new Xblade(); $xblade->scopeGlue(':'); // data to be passed to email template $data['user'] = $account; $data['forgotten_password_code'] = $pwreset_record->code; $data['url']['base'] = URL::base(); $data['settings']['site_name'] = Config::get('settings::core.site_name'); $data['request']['ip'] = Request::ip(); $data['request']['user_agent'] = implode(', ', Request::header('user-agent')); $data['request']['languages'] = implode(', ', Request::languages()); // get email template based on settings $email_address = Config::get('settings::core.server_email'); $template_id = Config::get('settings::core.registration_pwreset_email_template'); $email_data = Email\Model\Template::find($template_id); // send email to user Email\Message::to($account->email)->from($email_address)->subject($xblade->parse($email_data->subject, $data))->body($xblade->parse($email_data->body, $data))->html($email_data->type)->send(); $this->data['message'] = __('registration::lang.An email was sent to you with instructions to reset your password')->get(APP_LANG); $this->data['message_type'] = 'success'; return Redirect::to('page/home')->with($this->data); } return Redirect::back()->with_errors($validation)->with_input(); }
<?php Event::listen('send_email', function ($email, $parser = null, $data = array()) { if (!isset($parser)) { $parser = new Xblade(); $parser->scopeGlue(':'); } $to_email = null; if (!isset($email['to_email'])) { Log::error("Error sending email event. Email must have a recipient email addres. [to_email]"); return false; } else { $to_email = $email['to_email']; } $from_email = null; if (!isset($email['from_email'])) { $from_email = Config::get('settings::core.server_email'); } else { $from_email = $email['from_email']; } if (!isset($email['type']) or $email['type'] != 'text') { $email['type'] = 'html'; } else { $email['type'] = 'text'; } // Data to be passed to email template $data['url']['base'] = URL::base(); $data['settings']['site_name'] = Config::get('settings::core.site_name'); $data['request']['ip'] = Request::ip(); // Not all requests have user agent or languages //$data['request']['user_agent'] = implode(', ', Request::header('user-agent'));