private function _sendPart()
 {
     if (empty($this->_recipients)) {
         return true;
     }
     $json = array('to' => $this->_getAddress(array_splice($this->_recipients, 0, $this->_config['count'])), 'category' => !empty($this->_headers['X-Category']) ? $this->_headers['X-Category'] : $this->_config['category']);
     //Sendgrid Substitution Tags
     if (!empty($this->_headers['X-Sub'])) {
         foreach ($this->_headers['X-Sub'] as $key => $value) {
             $json['sub'][$key] = array_splice($value, 0, $this->_config['count']);
         }
     }
     $params = array('api_user' => $this->_config['username'], 'api_key' => $this->_config['password'], 'x-smtpapi' => json_encode($json), 'to' => '*****@*****.**', 'subject' => $this->_cakeEmail->subject(), 'html' => $this->_cakeEmail->message('html'), 'text' => $this->_cakeEmail->message('text'), 'from' => $this->_config['from'], 'fromname' => $this->_config['fromName'], 'replyto' => array_keys($this->_replyTo)[0]);
     $attachments = $this->_cakeEmail->attachments();
     if (!empty($attachments)) {
         foreach ($attachments as $key => $value) {
             $params['files[' . $key . ']'] = '@' . $value['file'];
         }
     }
     $result = json_decode($this->_exec($params));
     if ($result->message != 'success') {
         return $result;
     } else {
         return $this->_sendPart();
     }
 }
 /**
  * Sends out email via Mandrill
  *
  * @param CakeEmail $email
  * @return array
  */
 public function send(CakeEmail $email)
 {
     // CakeEmail
     $this->_cakeEmail = $email;
     $from = $this->_cakeEmail->from();
     list($fromEmail) = array_keys($from);
     $fromName = $from[$fromEmail];
     $this->_config = $this->_cakeEmail->config();
     $this->_headers = $this->_cakeEmail->getHeaders();
     $message = array('html' => $this->_cakeEmail->message('html'), 'text' => $this->_cakeEmail->message('text'), 'subject' => mb_decode_mimeheader($this->_cakeEmail->subject()), 'from_email' => $fromEmail, 'from_name' => $fromName, 'to' => array(), 'headers' => array('Reply-To' => $fromEmail), 'important' => false, 'track_opens' => null, 'track_clicks' => null, 'auto_text' => null, 'auto_html' => null, 'inline_css' => null, 'url_strip_qs' => null, 'preserve_recipients' => null, 'view_content_link' => null, 'tracking_domain' => null, 'signing_domain' => null, 'return_path_domain' => null, 'merge' => true, 'tags' => null, 'subaccount' => null);
     $message = array_merge($message, $this->_headers);
     foreach ($this->_cakeEmail->to() as $email => $name) {
         $message['to'][] = array('email' => $email, 'name' => $name, 'type' => 'to');
     }
     foreach ($this->_cakeEmail->cc() as $email => $name) {
         $message['to'][] = array('email' => $email, 'name' => $name, 'type' => 'cc');
     }
     foreach ($this->_cakeEmail->bcc() as $email => $name) {
         $message['to'][] = array('email' => $email, 'name' => $name, 'type' => 'bcc');
     }
     $attachments = $this->_cakeEmail->attachments();
     if (!empty($attachments)) {
         $message['attachments'] = array();
         foreach ($attachments as $file => $data) {
             $message['attachments'][] = array('type' => $data['mimetype'], 'name' => $file, 'content' => base64_encode(file_get_contents($data['file'])));
         }
     }
     $params = array('message' => $message, "async" => false, "ip_pool" => null, "send_at" => null);
     return $this->_exec($params);
 }
 public function handleException(Exception $exception, $shutdown = false)
 {
     $this->_exception = $exception;
     $email = new CakeEmail('error');
     $prefix = Configure::read('ExceptionNotifier.prefix');
     $from = $email->from();
     if (empty($from)) {
         $email->from('*****@*****.**', 'Exception Notifier');
     }
     $subject = $email->subject();
     if (empty($subject)) {
         $email->subject($prefix . '[' . date('Ymd H:i:s') . '][' . $this->_getSeverityAsString() . '][' . ExceptionText::getUrl() . '] ' . $exception->getMessage());
     }
     if ($this->useSmtp) {
         $email->transport('Smtp');
         $email->config($this->smtpParams);
     }
     $text = ExceptionText::getText($exception->getMessage(), $exception->getFile(), $exception->getLine());
     $email->send($text);
     // return Exception.handler
     if ($shutdown || !$this->_exception instanceof ErrorException) {
         $config = Configure::read('Exception');
         $handler = $config['handler'];
         if (is_string($handler)) {
             call_user_func($handler, $exception);
         } elseif (is_array($handler)) {
             call_user_func_array($handler, $exception);
         }
     }
 }
Example #4
0
 /**
  * sendResetMail
  *
  */
 public static function sendResetMail($data, $user)
 {
     $modelName = $data['model'];
     $loader = ReminderConfigLoader::init($modelName);
     $email = new CakeEmail('reminder');
     $from = $email->from();
     if (empty($from)) {
         $email->from('*****@*****.**', 'Reminder');
     }
     $subject = $loader->load('subject');
     if (empty($subject)) {
         $subject = $email->subject();
     }
     if (empty($subject)) {
         $subject = 'Reminder';
         // default
     }
     $email->subject($subject);
     $email->to($data['email']);
     $template = $loader->load('view.reset_mail');
     if (empty($template)) {
         $template = 'reset_mail';
     }
     $email->template('Reminder.' . $template);
     $email->viewVars(array('data' => $data, 'user' => $user));
     return $email->send();
 }
 /**
  * Sends out email via SparkPost
  *
  * @param CakeEmail $email
  * @return array
  */
 public function send(CakeEmail $email)
 {
     // CakeEmail
     $this->_cakeEmail = $email;
     $this->_config = $this->_cakeEmail->config();
     $this->_headers = $this->_cakeEmail->getHeaders();
     // Not allowed by SparkPost
     unset($this->_headers['Content-Type']);
     unset($this->_headers['Content-Transfer-Encoding']);
     unset($this->_headers['MIME-Version']);
     unset($this->_headers['X-Mailer']);
     $from = $this->_cakeEmail->from();
     list($fromEmail) = array_keys($from);
     $fromName = $from[$fromEmail];
     $message = ['html' => $this->_cakeEmail->message('html'), 'text' => $this->_cakeEmail->message('text'), 'from' => ['name' => $fromName, 'email' => $fromEmail], 'subject' => mb_decode_mimeheader($this->_cakeEmail->subject()), 'recipients' => [], 'transactional' => true];
     foreach ($this->_cakeEmail->to() as $email => $name) {
         $message['recipients'][] = ['address' => ['email' => $email, 'name' => $name], 'tags' => $this->_headers['tags']];
     }
     foreach ($this->_cakeEmail->cc() as $email => $name) {
         $message['recipients'][] = ['address' => ['email' => $email, 'name' => $name], 'tags' => $this->_headers['tags']];
     }
     foreach ($this->_cakeEmail->bcc() as $email => $name) {
         $message['recipients'][] = ['address' => ['email' => $email, 'name' => $name], 'tags' => $this->_headers['tags']];
     }
     unset($this->_headers['tags']);
     $attachments = $this->_cakeEmail->attachments();
     if (!empty($attachments)) {
         $message['attachments'] = array();
         foreach ($attachments as $file => $data) {
             if (!empty($data['contentId'])) {
                 $message['inlineImages'][] = array('type' => $data['mimetype'], 'name' => $data['contentId'], 'data' => base64_encode(file_get_contents($data['file'])));
             } else {
                 $message['attachments'][] = array('type' => $data['mimetype'], 'name' => $file, 'data' => base64_encode(file_get_contents($data['file'])));
             }
         }
     }
     $message = array_merge($message, $this->_headers);
     // Load SparkPost configuration settings
     $config = ['key' => $this->_config['sparkpost']['api_key']];
     if (isset($this->_config['sparkpost']['timeout'])) {
         $config['timeout'] = $this->_config['sparkpost']['timeout'];
     }
     // Set up HTTP request adapter
     $httpAdapter = new Ivory\HttpAdapter\Guzzle6HttpAdapter($this->__getClient());
     // Create SparkPost API accessor
     $sparkpost = new SparkPost\SparkPost($httpAdapter, $config);
     // Send message
     try {
         return $sparkpost->transmission->send($message);
     } catch (SparkPost\APIResponseException $e) {
         // TODO: Determine if BRE is the best exception type
         throw new BadRequestException(sprintf('SparkPost API error %d (%d): %s (%s)', $e->getAPICode(), $e->getCode(), ucfirst($e->getAPIMessage()), $e->getAPIDescription()));
     }
 }
 /**
  * testSendgridSend method
  *
  * @return void
  */
 public function testPostmarkSend()
 {
     $this->email->template('default', 'default');
     $this->email->emailFormat('both');
     $this->email->to(array('*****@*****.**' => 'Recipient'));
     $this->email->subject('Test email via SedGrid');
     $this->email->addHeaders(array('X-Tag' => 'my tag'));
     $sendReturn = $this->email->send();
     //        $headers = $this->email->getHeaders(array('to'));
     //        $this->assertEqual($sendReturn['To'], $headers['To']);
     //        $this->assertEqual($sendReturn['ErrorCode'], 0);
     //        $this->assertEqual($sendReturn['Message'], 'OK');
 }
 public function index()
 {
     //checking session
     $uid = $this->Session->read('Auth.User.id');
     if (isset($uid)) {
         return $this->redirect(array('controller' => 'profiles', 'action' => 'edit'));
     }
     $this->layout = 'main';
     $title = 'User Registration';
     $this->set(compact('title'));
     //check from submit or not
     if ($this->request->is('post')) {
         //uploading image file
         $new_file_name = rand(1000, rand(100000, rand(1000000, 10000000))) . "_" . md5(time()) . "_" . time() . $this->data['Profile']['image']['name'];
         move_uploaded_file($this->data['Profile']['image']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/registration/app/webroot/img/image/' . $new_file_name);
         $this->request->data['Profile']['image'] = '/registration/app/webroot/img/image/' . $new_file_name;
         //----------------------
         //save data
         if ($this->Profile->save($this->request->data)) {
             $Email = new CakeEmail();
             $Email->from(array('*****@*****.**' => 'Cake registration demo'));
             $Email->to($this->data['Profile']['email']);
             $Email->subject('Registration process completed successfully');
             $Email->send('Welcome to cake registration demo .Your registration process completed successfully');
             $this->Session->setFlash('User details has been saved.', 'default', array('class' => 'alert alert-success'));
             return $this->redirect(array('action' => 'login'));
         }
         //------------
         //on failure
         $this->Session->setFlash('Unable to add User details.', 'default', array('class' => 'alert alert-danger'));
     }
 }
Example #8
0
 public function sendEmail($to = NULL, $subject = NULL, $data = NULL, $template = NULL, $format = 'text', $cc = NULL, $bcc = NULL)
 {
     $Email = new CakeEmail();
     $Email->from(array(Configure::read('Email_From_Email') => Configure::read('Email_From_Name')));
     //$Email->config(Configure::read('TRANSPORT'));
     $Email->config('default');
     $Email->template($template);
     if ($to != NULL) {
         $Email->to($to);
     }
     if ($cc != NULL) {
         $Email->cc($cc);
     }
     if ($bcc != NULL) {
         $Email->bcc($bcc);
     }
     $Email->subject($subject);
     $Email->viewVars($data);
     $Email->emailFormat($format);
     if ($Email->send()) {
         return true;
     } else {
         return false;
     }
 }
 /**
  * add method
  *
  * @return void
  */
 public function add()
 {
     $institucions = $this->User->Institucion->find('list');
     if ($this->request->is('post')) {
         // Password
         $password = $this->strongPassword($this->request->data['User']['username']);
         $this->request->data['User']['password'] = $password;
         $this->request->data['User']['role'] = 'administrador';
         $this->request->data['User']['active'] = true;
         $this->User->create();
         if ($this->User->save($this->request->data)) {
             // Envio de clave al usuario
             $email = new CakeEmail('default');
             $email->template('administrador');
             $email->emailFormat('text');
             $email->from('*****@*****.**');
             $email->to($this->request->data['User']['username']);
             $email->subject('Cuenta gobscore.');
             $email->viewVars(array('name' => $this->request->data['User']['name'], 'institucion' => $institucions[$this->request->data['User']['institucion_id']], 'username' => $this->request->data['User']['username'], 'password' => $password));
             if ($email->send()) {
                 $mensaje = 'Los datos de la institución y cuenta de ' . 'administrador han sido enviados correctamente';
             }
             $this->Session->setFlash($mensaje);
             return $this->redirect(array('action' => 'index'));
         } else {
             $this->Session->setFlash(__('La información ha no sido almacenada. Por favor, trate de nuevo.'));
         }
     }
     $this->set(compact('institucions'));
 }
 public function contact()
 {
     $this->loadModel('Contact');
     if ($this->request->is('post')) {
         $this->Contact->set($this->request->data);
         if ($this->Contact->validates()) {
             App::uses('CakeEmail', 'Network/Email');
             if ($this->request->data['Contact']['subject'] == '') {
                 $this->request->data['Contact']['subject'] = 'Contact';
             }
             $Email = new CakeEmail('smtp');
             $Email->viewVars(array('mailData' => $this->request->data));
             $Email->template('contact', 'default');
             $Email->emailFormat('html');
             $Email->from(array($this->request->data['Contact']['mail'] => $this->request->data['Contact']['name']));
             $Email->to('*****@*****.**');
             $Email->subject($this->request->data['Contact']['subject']);
             $Email->attachments(array('logo.png' => array('file' => WWW_ROOT . '/img/icons/logo.png', 'mimetype' => 'image/png', 'contentId' => 'logo')));
             $Email->send();
             $this->Flash->success(__('Votre mail a bien été envoyé.'));
             return $this->redirect($this->referer());
         } else {
             $this->Session->write('errors.Contact', $this->Contact->validationErrors);
             $this->Session->write('data', $this->request->data);
             $this->Session->write('flash', 'Le mail n’a pas pu être envoyé. Veuillez réessayer SVP.');
             return $this->redirect($this->referer());
         }
     }
 }
    function email_referrer($receiver = null, $invite_total = null, $code = null)
    {
        $share_link = FULL_BASE_URL . '/invite/' . $code;
        //For our coming soon incentive, we were increasing peoples call rates by 10 cents for every person that joined the site from their link
        //so the funciton below simply calculates their new rate.
        //add in your own function if you want
        $total_referrals = $invite_total;
        $current_rate = 2.5 + $invite_total * 0.1;
        if ($current_rate > 3.5) {
            $current_rate = 3.5;
        }
        $message = 'Nice work!  
								<br /><br />
							One of your friends just joined Amplifyd.  Your new caller rate is now $' . $current_rate . '0/per call. 
								<br /><br />
							Because of you, our public voice just got stronger and louder.
								<br /><br />
							Keep it up, here\'s your unique invite link again: 
								<br />
							<a href="' . $share_link . '" >' . $share_link . '</a>
								<br /><br />
							';
        $email = new CakeEmail('sendgrid');
        $email->emailFormat('html');
        $email->to($receiver);
        $email->subject('A Friend Just Joined');
        $email->send($message);
    }
 public function index()
 {
     if (!empty($this->data)) {
         if ($this->request->is('post')) {
             $data = $this->request->data;
             if ($this->Matriculation->save($data)) {
                 $email = new CakeEmail();
                 $email->config('default');
                 $email->from(array('*****@*****.**' => 'Sardonix Idiomas | Automático'));
                 $email->to('*****@*****.**');
                 $email->subject("Matrícula - {$data['Matriculation']['name']} ");
                 $cursos = '';
                 if (isset($data['Matriculation']['english'])) {
                     $cursos .= 'Inglês; ';
                 }
                 if (isset($data['Matriculation']['italian'])) {
                     $cursos .= 'Italiano; ';
                 }
                 if (isset($data['Matriculation']['portuguese'])) {
                     $cursos .= 'Português; ';
                 }
                 $date = new DateTime();
                 $message = "Nome: {$data['Matriculation']['name']}\n\n";
                 $message .= "Telefone: {$data['Matriculation']['phone']}\n\n";
                 $message .= "Celular: {$data['Matriculation']['cellphone']}\n\n";
                 $message .= "Idiomas de interesse: {$cursos}\n\n";
                 $message .= "E-mail: {$data['Matriculation']['email']} \n\n";
                 $message .= "Soube: {$data['Matriculation']['where']}\n\n";
                 $message .= "Acessou em: " . $date->format('d/m/Y H:i:s');
                 $email->send($message);
                 $this->render('enviado');
             }
         }
     }
 }
 /**
  * Send comfirmation email whit unique code
  */
 public function send_mail()
 {
     $user = $this->Session->read('Auth');
     if (isset($user)) {
         if ($user['User']['active'] == 0) {
             $uniqueId = uniqid("", TRUE);
             if ($this->saveSendComfirmation($user, $uniqueId)) {
                 App::uses('CakeEmail', 'Network/Email');
                 $email = new CakeEmail('gmail');
                 $link = "http://" . $_SERVER['HTTP_HOST'] . $this->webroot . "email/activate_account/" . $user['User']['id'] . '-' . $uniqueId;
                 $email->from('*****@*****.**');
                 $email->to($user['User']['email']);
                 $email->subject('Mail Confirmation');
                 $email->emailFormat('html');
                 $email->template('signup');
                 $email->viewVars(array('username' => $user['User']['full_name'], 'link' => $link));
                 $this->Session->setFlash(__('Email comfirmation has been sent'), 'flash/success');
                 $email->send();
             } else {
                 $this->Session->setFlash(__('Could not send email.'), 'flash/error');
             }
         } else {
             $this->Session->setFlash(__('Your email is already comfirmed.'), 'flash/error');
         }
     } else {
         $this->Session->setFlash(__('You are not login.'), 'flash/error');
     }
     $this->redirect('/');
 }
 public function main()
 {
     // =============================================================================================
     // 各種情報を取得
     // =============================================================================================
     // 今年分の振込情報を取得
     $year = date('Y');
     $transfer_histories = $this->TTransferHistory->findTransferHistory($year);
     // 振込目標額を取得
     $total_price = $this->MParameter->find('first', array('conditions' => array('parameter_name' => 'total_price'), 'fields' => array('parameter_value')));
     $total_price = $total_price['MParameter']['parameter_value'];
     // 合計振込額を取得
     $total_transfer_price = $this->TTransferHistory->find('first', array('conditions' => array('deleted' => 1), 'fields' => array('sum(transfer_price) as total_transfer_price')));
     $total_transfer_price = $total_transfer_price[0]['total_transfer_price'];
     // 振込残高を取得
     $remaining_price = $total_price - $total_transfer_price;
     // =============================================================================================
     // メール送信処理
     // =============================================================================================
     $email = new CakeEmail('admin');
     $email->to('*****@*****.**');
     $email->subject($year . '年の振込情報');
     $email->emailFormat('text');
     $email->template('transfer_report');
     $email->viewVars(array('total_price' => number_format($total_price), 'total_transfer_price' => number_format($total_transfer_price), 'remaining_price' => number_format($remaining_price), 'year' => $year, 'transfer_histories' => $transfer_histories));
     $email->send();
 }
Example #15
0
 public function register()
 {
     if ($this->request->is('post')) {
         if ($this->data['User']['password'] == $this->data['User']['password_confirm']) {
             $this->request->data['User']['role'] = 'student';
             $this->User->create();
             if ($this->User->save($this->request->data)) {
                 App::uses('CakeEmail', 'Network/Email');
                 $user = $this->User->read(null, $this->User->id);
                 $link = array('controller' => 'users', 'action' => 'activate', $this->User->id . '-' . md5($user['User']['password']));
                 $mail = new CakeEmail('gmail');
                 $mail->from("*****@*****.**");
                 $mail->to($this->request->data['User']['email']);
                 $mail->subject(__('Please confirm your email !'));
                 $mail->emailFormat('html');
                 $mail->template('signup');
                 $mail->viewVars(array('username' => $this->request->data['User']['username'], 'link' => $link));
                 $mail->send();
                 $this->redirect(array('action' => 'login'));
             }
         } else {
             $this->Flash->error(__('The passwords do not match.'));
         }
     }
 }
Example #16
0
 /**
  * permet de refaire un mot de passe oublié
  * @return [type] [description]
  **/
 public function forgot()
 {
     $this->layout = "home";
     if (!empty($this->request->data)) {
         $user = $this->User->findByMail($this->request->data['User']['mail'], array('id'));
         if (empty($user)) {
             $this->Session->setFlash(__("This email address is not associated with any account"), 'notif', array('class' => "danger", 'type' => 'info'));
         } else {
             $token = md5(uniqid() . time());
             $this->User->id = $user['User']['id'];
             $this->User->saveField('token', $token);
             App::uses('CakeEmail', 'Network/Email');
             $cakeMail = new CakeEmail('smtp');
             // à changer par default sur le site en ligne ou smtp en local
             $cakeMail->to($this->request->data['User']['mail']);
             $cakeMail->from(array('*****@*****.**' => "site "));
             $cakeMail->subject(__('Password regeneration'));
             $cakeMail->template('forgot');
             $cakeMail->viewVars(array('token' => $token, 'id' => $user['User']['id']));
             $cakeMail->emailFormat('text');
             $cakeMail->send();
             $this->Session->setFlash(__("An email was sent to you with instructions to regenerate your password! Please check your span !!"), "notif", array('class' => 'info', 'type' => 'info'));
         }
     }
 }
Example #17
0
 public function sendEmail()
 {
     App::import('Model', 'Setting');
     $setting_model = new Setting();
     $setting = $setting_model->find('first', array('fields' => 'email_contact'));
     $email_contact = empty($setting['Setting']['email_contact']) ? '' : $setting['Setting']['email_contact'];
     if (!empty($this->data['Contato'])) {
         $contato = $this->data['Contato'];
         App::uses('CakeEmail', 'Network/Email');
         $Email = new CakeEmail();
         $Email->config('smtp');
         $Email->template('contato', null);
         $Email->viewVars(array('contato' => $contato));
         $Email->to($email_contact);
         $Email->emailFormat('html');
         $Email->subject("Cartório NET - Contato: " . $contato['subject']);
         $success = false;
         try {
             if ($Email->send()) {
                 $success = true;
             } else {
                 $success = false;
             }
         } catch (Exception $e) {
             //                pr($e);die;
             $success = false;
         }
         return $success;
     }
     return false;
 }
 /**
  * Send email via SNS
  * @param CakeEmail $email
  * @return bool
  */
 public function send(CakeEmail $email)
 {
     $ses = SesClient::factory(array("key" => "AKIAIQHPCMQTEEXD5MGA", "secret" => "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", 'region' => 'us-east-1'));
     $destination = array('ToAddresses' => array());
     foreach ($email->to() as $addr => $name) {
         $destination['ToAddresses'][] = "{$name} <{$addr}>";
     }
     foreach ($email->bcc() as $addr => $name) {
         $destination['BccAddresses'][] = "{$name} <{$addr}>";
     }
     $message = array('Subject' => array('Data' => $email->subject()), 'Body' => array());
     $text = $email->message('text');
     if (!empty($text)) {
         $message['Body']['Text'] = array('Data' => $text);
     }
     $html = $email->message('html');
     if (!empty($html)) {
         $message['Body']['Html'] = array('Data' => $html);
     }
     $from = '';
     foreach ($email->from() as $addr => $name) {
         $from = "{$name} <{$addr}>";
         break;
     }
     $response = $ses->sendEmail(['Source' => $from, 'Destination' => $destination, 'Message' => $message]);
     return !empty($response);
 }
 public function index()
 {
     if (!$this->request->data) {
         $this->render();
         return;
     }
     $this->User->validate = array('email' => array(array('rule' => 'notEmpty', 'message' => 'メールアドレスを入力してください'), array('rule' => array('custom', '/^.+@.+$/'), 'message' => 'メールアドレスの形式が正しくありません。'), array('rule' => 'confirm', 'message' => 'メールアドレスが一致していません。'), array('rule' => 'isUniqueAndActive', 'message' => 'このメールアドレスは使用されています。')));
     $this->User->set($this->request->data);
     if (!$this->User->invalidFields()) {
         $email = $this->request->data['User']['email'];
         $activation_code = md5($email . time());
         $user = $this->User->find('first', array('conditions' => array('email' => $email, 'is_active' => false)));
         if (!$user) {
             $this->User->create();
             $user = array('User' => $this->request->data['User']);
         }
         $user['User']['is_active'] = false;
         $user['User']['activation_code'] = $activation_code;
         $this->User->save($user);
         $cakeemail = new CakeEmail('default');
         $cakeemail->to($email);
         $cakeemail->subject('仮登録のお知らせ');
         $cakeemail->send(sprintf('http://example.com/signup/activate/%s', $activation_code));
         $this->render('email_sent');
     }
 }
Example #20
0
 public function main()
 {
     define('TIMEZONE', 'Asia/Bangkok');
     date_default_timezone_set(TIMEZONE);
     $now = date("Y-m-d H:i:s");
     $tomorrow = date("Y-m-d H:i:s", time() + EVENT_REMIDER_TIMER);
     $optionCalendar = array('order' => array('from_date' => 'asc'), 'conditions' => array('from_date >=' => $now, 'to_date <=' => $tomorrow));
     $events = $this->Calendar->find("all", $optionCalendar);
     foreach ($events as $key => $event) {
         $content = array();
         $content["id"] = $event["Calendar"]["id"];
         $content["name"] = $event["Calendar"]["name"];
         $content["description"] = $event["Calendar"]["description"];
         $content["from_date"] = $this->_formatDate($events[$key]["Calendar"]["from_date"], "d-m-Y H:i");
         $content["to_date"] = $this->_formatDate($events[$key]["Calendar"]["to_date"], "d-m-Y H:i");
         $id = $event["Calendar"]["id"];
         $user = $this->UserModel->findById($event["Calendar"]["user_id"]);
         $content["receive_name"] = $user["UserModel"]["display_name"];
         $Email = new CakeEmail('noreply');
         $noreplyConf = $Email->config();
         $Email->template('calendar_remider');
         $Email->emailFormat('html');
         $Email->viewVars(array('emailContent' => $content));
         $Email->from($noreplyConf['from']);
         $Email->to($user["UserModel"]["user_email"]);
         $Email->subject(__('Calendar Reminder'));
         $Email->send();
     }
     //echo EVENT_REMIDER_TIMER;
 }
Example #21
0
 public function forget()
 {
     if ($this->request->is('post')) {
         $error = null;
         $email = $this->request->data['User']['email'];
         $result = $this->User->find('first', array('conditions' => array('User.email' => $email)));
         if ($result == null || empty($result)) {
             $error = "メールアドレスが登録されていません。";
         } else {
             $host = empty($_SERVER['CAKE_ENV']) ? 'localhost' : $_SERVER['CAKE_ENV'];
             $pre_id = $result['User']['pre_id'];
             $gmail = new CakeEmail('gmail');
             $gmail->to($email);
             $gmail->subject('seapaパスワード再設定URL');
             $messages = $gmail->send('パスワード再設定URL : http://' . $host . '/regist/reinput?pre_id=' . $pre_id);
             if ($messages == null) {
                 $error = "メールが送信できませんでした。管理者にお問い合わせください。";
             }
         }
         if (empty($error)) {
             $this->redirect(array('controller' => 'preregist', 'action' => 'result'));
         } else {
             $this->Session->setFlash($error, "flash_error");
         }
     }
 }
 /**
  * index method
  *
  * @return void
  */
 public function index()
 {
     $this->Comment->recursive = 0;
     if (!empty($this->request->data)) {
         $this->Comment->create($this->request->data);
         if ($this->Comment->validates()) {
             if (!empty($this->request->data['Comment']['website'])) {
                 $this->Session->setFlash(__("Your Mail us is reached."), 'notif', array('class' => "success", 'type' => 'ok-sign'));
                 $this->request->data = array();
             } else {
                 $token = md5(time() . ' - ' . uniqid());
                 $this->Comment->create(array('name' => $this->request->data['Comment']['name'], 'mail' => $this->request->data['Comment']['mail'], 'content' => $this->request->data['Comment']['content'], 'token' => $token));
                 $this->Comment->save();
                 App::uses('CakeEmail', 'Network/Email');
                 $CakeEmail = new CakeEmail('smtp');
                 // à changer par Default sur le site en ligne sinon smtp
                 $CakeEmail->to(array('*****@*****.**'));
                 $CakeEmail->from(array($this->request->data['Comment']["mail"] => "livre d or"));
                 $CakeEmail->subject(__("Commentaire sur le livre d'or"));
                 $CakeEmail->viewVars($this->request->data['Comment'] + array("name" => $this->Comment->name, "mail" => $this->Comment->mail, "content" => $this->Comment->content, 'token' => $token, 'id' => $this->Comment->id));
                 $CakeEmail->emailFormat('html');
                 $CakeEmail->template('commentaire');
                 $CakeEmail->send();
                 $this->Session->setFlash(__('The comment has been saved.'), 'notif', array('class' => "success", 'type' => 'ok-sign'));
                 return $this->redirect(array('action' => 'index'));
             }
         } else {
             $this->Session->setFlash(__('The comment could not be saved. Please, try again.'), 'notif', array('class' => "danger", 'type' => 'info-sign'));
         }
     }
     $this->paginate = array('Comment' => array('limit' => 3, 'order' => array('Comment.created' => 'desc')));
     $d['comments'] = $this->Paginate('Comment', array('Comment.online >= 1'));
     $this->set($d);
 }
Example #23
0
 public function exacute()
 {
     $books = $this->Book->find('all', array('conditions' => array('Book.state' => 'Bet Finish')));
     foreach ($books as $book) {
         $time_zone = $this->Book->TimeZone->find('first', array('conditions' => array('TimeZone.id' => $book['Book']['time_zone'])));
         if (isset($time_zone['TimeZone']) && isset($time_zone['TimeZone']['value'])) {
             $bookdaystate = new BookDayState($book, $time_zone['TimeZone']['value']);
             if ($bookdaystate->isTimeOut() && $book['Book']['timeover_info'] == false) {
                 /*
                 $content = 'The result has not been selected after 24 hours from the announcement date and time the corresponding book is disabled and all points wagered are returned to all punters. 
                 The bookmaker will receive a penalty.
                 
                 Book Title : '.$book['Book']['title'].'<br>Total Bet : '.$book['Book']['bet_all_total'].'<br>Total User : '******'Book']['user_all_count'].'
                 
                 '.'<a href="http://bookbookmaker.com/books'.'/'.$book['Book']['id'].'">http://bookbookmaker.com/books'.'/'.$book['Book']['id'].'</a>';
                 */
                 $Email = new CakeEmail('sendGrid');
                 $Email->template('timeover');
                 $Email->to($book['User']['mail']);
                 $Email->subject('Bookタイムオーバー bookbookmaker.com');
                 $Email->viewVars(array('book' => $book));
                 $Email->send();
                 $this->Book->seTimeover($book['Book']['id']);
             } else {
             }
         }
     }
 }
Example #24
0
 public function add()
 {
     //新規会員登録
     if ($this->request->is('post')) {
         $this->User->set($this->data);
         if ($this->User->validates()) {
             // status => 0, regist_code => xxxxxxxxxxxxxxx を $this->data に入れる
             $uuid = md5(uniqid());
             $data = $this->data;
             $data['User']['regist_code'] = $uuid;
             $this->User->save($data);
             $email = new CakeEmail('gmail');
             // インスタンス化
             $email->from(array('*****@*****.**' => 'Sender'));
             // 送信元
             $email->to('*****@*****.**');
             // 送信先
             $email->subject('twitter課題テスト');
             // メールタイトル
             $email->emailFormat('html');
             // フォーマット
             $email->template('mailsendtest');
             // テンプレートファイル
             $email->viewVars(array('registurl' => 'http://dev.elites.com/elites/twitter/users/registcomplete/', 'regist_code' => $uuid));
             $email->send('');
             // メール送信
             $this->redirect(array('contoller' => 'users', 'action' => 'sendmailcomplete'));
         }
     }
 }
Example #25
0
 public function send()
 {
     if ($this->request->is('post')) {
         // Check security token
         if (empty($this->request->data['Feedback']['token']) || $this->request->data['Feedback']['token'] != '!pilule$') {
             throw new NotFoundException();
         }
         // Send feedback via email
         $Email = new CakeEmail();
         if (!empty($this->request->data['Feedback']['name']) && !empty($this->request->data['Feedback']['email'])) {
             $Email->replyTo(array($this->request->data['Feedback']['email'] => $this->request->data['Feedback']['name']));
         }
         $Email->from('*****@*****.**');
         $Email->to('*****@*****.**');
         $Email->config('postmark');
         $Email->subject('Pilule - Commentaires');
         $Email->template('feedback');
         $Email->emailFormat('html');
         $Email->viewVars(array('message' => $this->request->data));
         if ($Email->send()) {
             return new CakeResponse(array('body' => json_encode(array('status' => true))));
         } else {
             return new CakeResponse(array('body' => json_encode(array('status' => false))));
         }
     } elseif ($this->request->is('ajax')) {
         $this->layout = 'ajax';
         $this->render('modals/form');
     }
 }
Example #26
0
 /**
  * Send mail
  *
  * @params object $email CakeEmail
  * @return boolean
  */
 public function send(CakeEmail $email)
 {
     $eol = PHP_EOL;
     if (isset($this->_config['eol'])) {
         $eol = $this->_config['eol'];
     }
     $headers = $email->getHeaders(array_fill_keys(array('from', 'sender', 'replyTo', 'readReceipt', 'returnPath', 'to', 'cc', 'bcc'), true));
     $to = $headers['To'];
     unset($headers['To']);
     $header = $this->_headersToString($headers, $eol);
     $message = implode($eol, $email->message());
     if (ini_get('safe_mode') || !isset($this->_config['additionalParameters'])) {
         return @mail($to, $email->subject(), $message, $header);
     }
     return @mail($to, $email->subject(), $message, $header, $this->_config['additionalParameters']);
 }
Example #27
0
 /**
  * Wenn es sich um einen POST-Request handelt, wird eine Rundmail mit den übergebenen Daten versendet.
  * 
  * @author aloeser
  * @return void
  */
 public function index()
 {
     if ($this->request->is('POST')) {
         $conditions = array('User.mail !=' => '', 'User.admin != ' => 2);
         if (!$this->request->data['Mail']['sendToAll']) {
             $conditions['User.leave_date'] = null;
         }
         $activeUsersWithEmail = $this->User->find('all', array('conditions' => $conditions));
         $receivers = array();
         foreach ($activeUsersWithEmail as $user) {
             array_push($receivers, $user['User']['mail']);
         }
         $senderMail = '*****@*****.**';
         $senderName = 'Humboldt Cafeteria';
         $EMail = new CakeEmail();
         $EMail->from(array($senderMail => $senderName));
         $EMail->bcc($receivers);
         $EMail->subject($this->request->data['Mail']['subject']);
         $EMail->config('web');
         $EMail->template('default');
         $EMail->emailFormat('html');
         $EMail->viewVars(array('senderName' => $senderName, 'senderMail' => $senderMail, 'content' => $this->request->data['Mail']['content'], 'subject' => $this->request->data['Mail']['subject'], 'allowReply' => $this->request->data['Mail']['allowReply']));
         if ($EMail->send()) {
             $this->Session->setFlash('Die Rundmail wurde erfolgreich abgeschickt.', 'alert-box', array('class' => 'alert-success'));
             $this->redirect(array('action' => 'index'));
         } else {
             $this->Session->setFlash('Beim Senden ist ein Fehler aufgetreten.', 'alert-box', array('class' => 'alert-error'));
         }
     }
     $this->set('actions', array());
 }
 function RecoverPassword($username)
 {
     $response = array('status' => false, 'message' => 'Ocurrió un error');
     $this->Behaviors->attach('Containable');
     if ($user = $this->find('first', array('conditions' => array('UsuarioInterno.username' => $username), 'contain' => array('Empresa')))) {
         $this->id = $user['UsuarioInterno']['id'];
         $token = md5($user['UsuarioInterno']['id'] . $user['UsuarioInterno']['username'] . date('d-m-Y'));
         if ($this->saveField('token', $token)) {
             App::uses('CakeEmail', 'Network/Email');
             $url = Router::url(array('controller' => 'empresas', 'action' => 'cambiar_clave', $token), true);
             $Email = new CakeEmail();
             $Email->template('password');
             $Email->from(array('*****@*****.**' => 'Xperiencia Laboral'));
             $Email->to($user['UsuarioInterno']['email']);
             $Email->subject('Recuperacion contraseña Xperiencia Laboral');
             $Email->viewVars(array('nombre' => $user['UsuarioInterno']['nombre'] . ' ' . $user['UsuarioInterno']['apellido'], 'url' => $url));
             $Email->emailFormat('html');
             if ($Email->send()) {
                 $response['message'] = 'Un link para reestablecer tu contraseña ha sido enviado a tu email ' . $user['UsuarioInterno']['email'];
                 $response['status'] = true;
             } else {
                 $response['message'] = 'Ocurrio un error al intentar enviar el mail';
             }
         }
     } else {
         $response['message'] = 'El email ingresado no corresponde a un usuario existente';
     }
     return $response;
 }
 protected function __resetPassword($username = '')
 {
     $this->loadModel('User');
     $conditions = array('username' => $username);
     $options = array('conditions' => $conditions);
     $user = $this->User->find('first', $options);
     $message = 'El usuario no existe.';
     if ($user) {
         $data['password'] = $this->strongPassword($username);
         $this->User->id = $user['User']['id'];
         $mensaje = 'No ha sido posible cambiar el password, intente de nuevo.';
         if ($this->User->save($data)) {
             $email = new CakeEmail('default');
             $email->template('change_password');
             $email->emailFormat('text');
             $email->from('*****@*****.**');
             $email->to($username);
             $email->subject('Reinicio de credenciales gobscore.');
             $email->viewVars(array('username' => $username, 'password' => $data['password']));
             $message = 'El password ha sido cambiado con éxito. Ha ocurrido un ' . 'error en el envío de su nuevo password.';
             if ($email->send()) {
                 $message = 'Los datos de la institución y cuenta de ' . 'administrador han sido enviados correctamente';
             }
         }
     }
     return $message;
 }
Example #30
0
 public function exacute()
 {
     $users = array();
     $books = $this->Book->find('all', array('conditions' => array('Book.mail_info' => 0, 'Book.state' => 'result')));
     foreach ($books as $book) {
         $update['Book'] = array('id' => $book['Book']['id'], 'mail_info' => 1);
         $this->Book->save($update, false);
         foreach ($book['Bet'] as $bet) {
             if ($bet['result_point'] === NULL) {
                 $bet['result_point'] = 0;
                 $this->Bet->id = $bet['id'];
                 $this->Bet->set('result_point', 0);
                 $this->Bet->save();
             }
             foreach ($book['Content'] as $content) {
                 if ($content['id'] == $bet['content_id']) {
                     $bet['content_title'] = $content['title'];
                 }
             }
             $users[$bet['user_id']][$book['Book']['id']]['Bet'][] = $bet;
             $users[$bet['user_id']][$book['Book']['id']]['Book'] = $book;
         }
     }
     foreach ($users as $user_id => $u_books) {
         $user = $this->User->find('first', array('conditions' => array('User.id' => $user_id)));
         $Email = new CakeEmail('sendGrid');
         $Email->template('betresult');
         $Email->to($user['User']['mail']);
         $Email->subject('結果発表 bookbookmaker.com');
         $Email->viewVars(array('user' => $user, 'books' => $u_books));
         $Email->send();
     }
 }