/**
  * 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);
 }
 /**
  * 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');
 }
Ejemplo n.º 4
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.'));
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * Send email via Mailgun
  *
  * @param CakeEmail $email
  * @return array
  * @throws Exception
  */
 public function send(CakeEmail $email)
 {
     if (Configure::read('Mailgun.preventManyToRecipients') !== false && count($email->to()) > 1) {
         throw new Exception('More than one "to" recipient not allowed (set Mailgun.preventManyToRecipients = false to disable check)');
     }
     $mgClient = new Mailgun($this->_config['mg_api_key']);
     $headersList = array('from', 'sender', 'replyTo', 'readReceipt', 'returnPath', 'to', 'cc', 'bcc', 'subject');
     $params = [];
     foreach ($email->getHeaders($headersList) as $header => $value) {
         if (isset($this->_paramMapping[$header]) && !empty($value)) {
             $key = $this->_paramMapping[$header];
             $params[$key] = $value;
         }
     }
     $params['text'] = $email->message(CakeEmail::MESSAGE_TEXT);
     $params['html'] = $email->message(CakeEmail::MESSAGE_HTML);
     $attachments = array();
     foreach ($email->attachments() as $name => $info) {
         $attachments['attachment'][] = '@' . $info['file'];
     }
     try {
         $result = $mgClient->sendMessage($this->_config['mg_domain'], $params, $attachments);
         if ($result->http_response_code != 200) {
             throw new Exception($result->http_response_body->message);
         }
     } catch (Exception $e) {
         throw $e;
     }
     return $result;
 }
 /**
  * Prepares the recipient email addresses.
  *
  * @return array
  */
 protected function _prepareRecipientAddresses()
 {
     $to = $this->_cakeEmail->to();
     $cc = $this->_cakeEmail->cc();
     $bcc = $this->_cakeEmail->bcc();
     return array_merge(array_keys($to), array_keys($cc), array_keys($bcc));
 }
Ejemplo n.º 7
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');
     }
 }
Ejemplo n.º 8
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 {
             }
         }
     }
 }
 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);
    }
Ejemplo n.º 11
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;
 }
Ejemplo n.º 12
0
 /**
  * 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);
 }
Ejemplo n.º 13
0
 public function sendEmail($event)
 {
     $user_email = $event->subject()->data['User']['email'];
     App::uses('CakeEmail', 'Network/Email');
     $email = new CakeEmail('default');
     $email->to($user_email)->subject(__('Welcome on Sonerezh !'))->emailFormat('html')->template('userAdd')->send();
 }
 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');
             }
         }
     }
 }
Ejemplo n.º 15
0
 /**
  * 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('/');
 }
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 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;
 }
Ejemplo n.º 18
0
 /**
  * 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);
 }
Ejemplo n.º 19
0
 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');
     }
 }
Ejemplo n.º 20
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'));
         }
     }
 }
Ejemplo n.º 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");
         }
     }
 }
Ejemplo n.º 22
0
 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;
 }
Ejemplo n.º 23
0
 /**
  * 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'));
 }
Ejemplo n.º 24
0
 protected function sendEmail($address, $username, $pass)
 {
     $subject = 'You now are an user of Employees Directory!';
     $body = 'Your username : '******'. Your password : '******'. (not include the last period)';
     $email = new CakeEmail('smtp');
     $email->to($address)->subject($subject)->send($body);
 }
Ejemplo n.º 25
0
 public function contact()
 {
     $this->setTitle('Liên hệ');
     if ($this->request->is('post')) {
         $this->loadModel('Contact');
         $save_data = array('Contact' => array('name' => $this->request->data('name'), 'address' => $this->request->data('address'), 'phone' => $this->request->data('phone'), 'email' => $this->request->data('email'), 'title' => 'Liên hệ : ' . $this->request->data('name'), 'descriptions' => $this->request->data('message')));
         if ($this->Contact->save($save_data)) {
             $Email = new CakeEmail('smtp');
             $Email->emailFormat('text')->subject($save_data['Contact']['title']);
             $this->loadModel('Setting');
             $mail_lists = $this->Setting->getCacheSetting('mail_receiver');
             $mail_lists = explode(';', $mail_lists['emails']['value']);
             $mail_lists = array_filter($mail_lists);
             //                $mail_lists = Configure::read('mail_receiver');
             if ($mail_lists) {
                 $Email->to($mail_lists);
                 $content = "\nNgười gửi : {$save_data['Contact']['name']} \n\nSố điện thoại : {$save_data['Contact']['phone']} \n\nEmail : {$save_data['Contact']['email']} \n\nĐịa chỉ : {$save_data['Contact']['address']} \n\nNội dung liên hệ : {$save_data['Contact']['descriptions']}\n\n\n\n                    ";
                 $Email->send($content);
             }
             echo json_encode(array('status' => 'ok', 'messages' => array('Cảm ơn bạn đã quan tâm đến BIOWAY-HITECH <br>Chúng tôi sẽ liên lạc lại bạn trong thời gian sớm nhất')));
             die;
         } else {
             echo 'ng';
             die;
         }
     }
 }
Ejemplo n.º 26
0
 public function sendPassword($emailLog)
 {
     $searchPlayer = "Select email From players As Player Where email = '";
     $searchPlayer .= $emailLog;
     $searchPlayer .= "'";
     if (!$this->query($searchPlayer)) {
         return false;
     } else {
         /*
          * renvoie un pass chiffré. PAS BON !!
          * renvoyer un mot de pass par défault
          * rediriger vers la page change password
          * faire comme si on changeait le mdp
          */
         $tempPass = $this->generatePassword();
         $tempPassCrypted = Security::hash($tempPass);
         $updatePass = "******" . $tempPassCrypted . "' Where email = '" . $emailLog . "'";
         $this->query($updatePass);
         //@todo: sauvegarder dans la base
         $message = "Voici votre mot de passe temporaire. Connectez-vous avec pour le changer.";
         App::uses('CakeEmail', 'Network/Email');
         $mail = new CakeEmail('rox');
         $mail->to($emailLog)->subject('WebArena Information')->template('player')->viewVars(array('message' => $message, 'email' => $emailLog, 'password' => $tempPass))->emailFormat('html');
         return $mail->send();
     }
 }
Ejemplo n.º 27
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;
     }
 }
Ejemplo n.º 28
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();
     }
 }
 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;
 }
 /**
  * Mark Complete method - Sets Risk Asessment to complete in the Clients Model
  *
  */
 public function mark_complete()
 {
     $completed = date('Y-m-d');
     // Get DateTime
     $client = $this->Session->read('Auth.User.client_id');
     $clientName = $this->Session->read('Auth.User.Client.name');
     $this->loadModel('Client');
     $this->Client->id = $client;
     $this->render(false);
     // tell cake to not use a view
     $existing_completion_date = $this->Client->field('risk_assessment_status');
     if ($existing_completion_date != '') {
         $this->Session->setFlash(__('Your Risk Assessment was already marked complete on ') . $existing_completion_date . '.');
         $this->redirect(array('action' => 'index'));
         return;
     }
     // Send Email
     $message = 'New Risk Assessment Completed by Client ' . $clientName . ' - Completed on ' . $completed;
     $email = new CakeEmail('hipaaMail');
     $email->to(Configure::read('App.adminEmailTo'))->subject('HIPAA Risk Assessment Marked Complete by Client - ' . $clientName)->send($message);
     if ($this->Client->saveField('risk_assessment_status', $completed)) {
         $this->Session->setFlash('Thanks! Your Risk Assessment has been marked complete.', 'default', array('class' => 'success message'));
         $this->redirect(array('controller' => 'dashboard', 'action' => 'index'));
     } else {
         $this->Session->setFlash(__('Sorry, Risk Assessment did not complete. Please, try again.'));
         $this->redirect(array('controller' => 'dashboard', 'action' => 'index'));
     }
 }