public function sendEmail($emailbody, $time, $value, $options)
 {
     global $user, $session;
     $timeformated = DateTime::createFromFormat("U", (int) $time);
     $timeformated->setTimezone(new DateTimeZone($this->parentProcessModel->timezone));
     $timeformated = $timeformated->format("Y-m-d H:i:s");
     $tag = array("{id}", "{type}", "{time}", "{value}");
     $replace = array($options['sourceid'], $options['sourcetype'], $timeformated, $value);
     $emailbody = str_replace($tag, $replace, $emailbody);
     if ($options['sourcetype'] == "INPUT") {
         $inputdetails = $this->parentProcessModel->input->get_details($options['sourceid']);
         $tag = array("{key}", "{name}", "{node}");
         $replace = array($inputdetails['name'], $inputdetails['description'], $inputdetails['nodeid']);
         $emailbody = str_replace($tag, $replace, $emailbody);
     } else {
         if ($options['sourcetype'] == "VIRTUALFEED") {
             // Not suported for VIRTUAL FEEDS
         }
     }
     $emailto = $user->get_email($session['userid']);
     require_once "Lib/email.php";
     $email = new Email();
     //$email->from(from);
     $email->to($emailto);
     $email->subject('Emoncms event alert');
     $email->body($emailbody);
     $result = $email->send();
     if (!$result['success']) {
         $this->log->error("Email send returned error. message='" . $result['message'] . "'");
     } else {
         $this->log->info("Email sent to {$emailto}");
     }
 }
 function _sendPasswordTo($email)
 {
     $user = User::findBy('email', $email);
     if ($user) {
         use_helper('Email');
         $new_pass = '******' . dechex(rand(100000000, 4294967295)) . 'K';
         $user->password = sha1($new_pass);
         $user->save();
         $email = new Email();
         $email->from('*****@*****.**', 'Frog CMS');
         $email->to($user->email);
         $email->subject('Your new password from Frog CMS');
         $email->message('username: '******'success', 'An email has been send with your new password!');
         redirect(get_url('login'));
     } else {
         Flash::set('email', $email);
         Flash::set('error', 'No user found!');
         redirect(get_url('login/forgot'));
     }
 }
Exemple #3
0
 public function passwordreset($username, $emailto)
 {
     $username_out = preg_replace('/[^\\p{N}\\p{L}_\\s-]/u', '', $username);
     if (!filter_var($emailto, FILTER_VALIDATE_EMAIL)) {
         return array('success' => false, 'message' => _("Email address format error"));
     }
     $result = $this->mysqli->query("SELECT * FROM users WHERE `username`='{$username_out}' AND `email`='{$emailto}'");
     if ($result->num_rows == 1) {
         $row = $result->fetch_array();
         $userid = $row['id'];
         if ($userid > 0) {
             // Generate new random password
             $newpass = hash('sha256', md5(uniqid(rand(), true)));
             $newpass = substr($newpass, 0, 10);
             // Hash and salt
             $hash = hash('sha256', $newpass);
             $salt = md5(uniqid(rand(), true));
             $password = hash('sha256', $salt . $hash);
             // Save password and salt
             $this->mysqli->query("UPDATE users SET password = '******', salt = '{$salt}' WHERE id = '{$userid}'");
             //------------------------------------------------------------------------------
             global $enable_password_reset;
             if ($enable_password_reset == true) {
                 require "Lib/email.php";
                 $email = new Email();
                 //$email->from(from);
                 $email->to($emailto);
                 $email->subject('Emoncms password reset');
                 $email->body("<p>A password reset was requested for your emoncms account.</p><p>Your can now login with password: {$newpass} </p>");
                 $result = $email->send();
                 if (!$result['success']) {
                     $this->log->error("Email send returned error. emailto=" + $emailto . " message='" . $result['message'] . "'");
                 } else {
                     $this->log->info("Email sent to {$emailto}");
                 }
             }
             //------------------------------------------------------------------------------
             // Sent email with $newpass to $email
             return array('success' => true, 'message' => "Password recovery email sent!");
         }
     }
     return array('success' => false, 'message' => "An error occured");
 }
 public function sendMail($sendTo, $title, $msg)
 {
     $Email = new Email();
     $config['protocol'] = 'sendmail';
     $Email->initialize($config);
     $Email->from('*****@*****.**');
     $Email->to($sendTo);
     //$Email->bcc('*****@*****.**');
     $Email->subject($title);
     $Email->message($msg);
     $Email->send();
 }
                        $dataline[$feedid] = "";
                    }
                }
            }
            if (!$firstline) {
                $time = $helperclass->getTimeZoneFormated($time, $usertimezone);
            }
            fputcsv($fh, array($time) + $dataline, $csv_field_separator);
            $firstline = false;
        }
        fclose($fh);
        if ($firstline == false) {
            $emailbody = "Attached is CSV for '" . $tag . "' tag.";
            $emailbody .= "\nTime range: " . $startText . " to " . $endText;
            require_once "Lib/email.php";
            $email = new Email();
            //$email->from(from);
            $email->to($emailto);
            $email->subject('Emoncms CSV Export ' . $tag . " (" . $startText . "-" . $endText . ")");
            $email->body($emailbody);
            $email->attach($filename);
            $result = $email->send();
            if (!$result['success']) {
                echo "Email send returned error. message='" . $result['message'] . "'";
                $log->error("Email send returned error. message='" . $result['message'] . "'");
            } else {
                $log->info("Email sent to {$emailto}");
            }
        }
    }
}
 private function _writeMail($title, $message, $user = array(), $paw = NULL)
 {
     if (!$this->_validateObject($user, false)) {
         return false;
     }
     // GET LOGIN URL
     $url = $this->config["account_pages"]["login"];
     if (defined("CMS_BACKEND") && CMS_BACKEND == true && startsWith($url, ADMIN_DIR . "/")) {
         $url = str_replace(ADMIN_DIR . "/", "", $url);
     }
     if (!startsWith($url, "http") && !startsWith($url, "www")) {
         $url = get_url($url);
     }
     $url = endsWith($url, "/") ? substr($url, 0, -1) : $url;
     // DEFAULT REPLACEMENTS
     $replacements = array("{{USR_USERNAME}}" => $user->username, "{{USR_NAME}}" => $user->name, "{{USR_EMAIL}}" => $user->email, "{{WEB_TITLE}}" => Setting::get("admin_title"), "{{WEB_LINK}}" => "<a href='" . URL_PUBLIC . "'>" . Setting::get("admin_title") . "</a>", "{{WEB_URL}}" => URL_PUBLIC, "{{WEB_EMAIL}}" => Setting::get("admin_email"), "{{WEB_LOGIN}}" => "<a href='" . $url . "'>" . __("Login") . "</a>", "{{WEB_LOGIN_URL}}" => $url);
     // PAW-ACTION REPLACEMENTS
     if (is_array($paw)) {
         if (!isset($paw["code"]) || !isset($paw["link"]) || !isset($paw["url"])) {
             return false;
         }
         $replacements["{{PAW_CODE}}"] = $paw["code"];
         $replacements["{{PAW_LINK}}"] = $paw["link"];
         $replacements["{{PAW_URL}}"] = $paw["url"];
     }
     // eMAIL
     $message = str_replace(array_keys($replacements), array_values($replacements), nl2br($message));
     use_helper("Email");
     $email = new Email();
     $email->to($user->email);
     $email->from($this->config["message_from"], Setting::get("admin_title"));
     $email->replyto($this->config["message_replyto"], Setting::get("admin_title"));
     $email->setMailtype($this->config["message_type"]);
     $email->subject($title);
     $email->message($message);
     if (@$email->send()) {
         return true;
     }
     return false;
 }
 /**
  * set subject of mail
  *
  * @param   string  subject of the email
  * 
  * @access  public
  *
  * @author  patrick.kracht
  */
 public function set_subject($subject)
 {
     self::$subject = utf8_decode($subject);
 }
 /**
  * This method is used to send a newly generated password to a user.
  *
  * @param string $email The user's email adress.
  */
 private function _sendPasswordTo($email)
 {
     $user = User::findBy('email', $email);
     if ($user) {
         use_helper('Email');
         $new_pass = '******' . dechex(rand(100000000, 4294967295)) . 'K';
         $user->password = AuthUser::generateHashedPassword($new_pass . $user->salt);
         $user->save();
         $email = new Email();
         $email->from(Setting::get('admin_email'), Setting::get('admin_title'));
         $email->to($user->email);
         $email->subject(__('Your new password from ') . Setting::get('admin_title'));
         $email->message(__('Username') . ': ' . $user->username . "\n" . __('Password') . ': ' . $new_pass);
         $email->send();
         Flash::set('success', __('An email has been sent with your new password!'));
         redirect(get_url('login'));
     } else {
         Flash::set('email', $email);
         Flash::set('error', __('No user found!'));
         redirect(get_url('login/forgot'));
     }
 }