getMail() публичный статический Метод

public static getMail ( null $recipients = null, null $subject = null, null $charset = null ) : Mail
$recipients null
$subject null
$charset null
Результат Mail
Пример #1
0
 public function lostpasswordAction()
 {
     $username = $this->getParam("username");
     if ($username) {
         $user = User::getByName($username);
         if (!$user instanceof User) {
             $this->view->error = "user unknown";
         } else {
             if ($user->isActive()) {
                 if ($user->getEmail()) {
                     $token = Tool\Authentication::generateToken($username, $user->getPassword());
                     $uri = $this->getRequest()->getScheme() . "://" . $this->getRequest()->getHttpHost();
                     $loginUrl = $uri . "/admin/login/login/?username="******"&token=" . $token . "&reset=true";
                     try {
                         $mail = Tool::getMail(array($user->getEmail()), "Pimcore lost password service");
                         $mail->setIgnoreDebugMode(true);
                         $mail->setBodyText("Login to pimcore and change your password using the following link. This temporary login link will expire in 30 minutes: \r\n\r\n" . $loginUrl);
                         $mail->send();
                         $this->view->success = true;
                     } catch (\Exception $e) {
                         $this->view->error = "could not send email";
                     }
                 } else {
                     $this->view->error = "user has no email address";
                 }
             } else {
                 $this->view->error = "user inactive";
             }
         }
     }
 }
Пример #2
0
 /**
  * @param string $content
  * @param array $records
  */
 public function send($content, array $records)
 {
     $mail = Tool::getMail(array($this->address), "pimcore log notification");
     $mail->setIgnoreDebugMode(true);
     $mail->setBodyText($content);
     $mail->send();
 }
Пример #3
0
 /**
  *
  */
 public function mail()
 {
     $conf = Config::getSystemConfig();
     if (!empty($conf->general->logrecipient)) {
         \Logger::debug(get_class($this) . ": detected log recipient:" . $conf->general->logrecipient);
         $user = User::getById($conf->general->logrecipient);
         \Logger::debug(get_class($this) . ": detected log recipient:" . $user->getEmail());
         if ($user instanceof User && $user->isAdmin()) {
             $email = $user->getEmail();
             \Logger::debug(get_class($this) . ": user is valid");
             if (!empty($email)) {
                 if (is_dir(PIMCORE_LOG_MAIL_TEMP)) {
                     \Logger::debug(get_class($this) . ": detected mail log dir");
                     \Logger::debug(get_class($this) . ": opening dir " . PIMCORE_LOG_MAIL_TEMP);
                     if ($handle = opendir(PIMCORE_LOG_MAIL_TEMP)) {
                         \Logger::debug(get_class($this) . ": reading dir " . PIMCORE_LOG_MAIL_TEMP);
                         while (false !== ($file = readdir($handle))) {
                             \Logger::debug(get_class($this) . ": detected file " . $file);
                             if (is_file(PIMCORE_LOG_MAIL_TEMP . "/" . $file) and is_writable(PIMCORE_LOG_MAIL_TEMP . "/" . $file)) {
                                 $now = time();
                                 $threshold = 1 * 60 * 15;
                                 $fileModified = filemtime(PIMCORE_LOG_MAIL_TEMP . "/" . $file);
                                 \Logger::debug(get_class($this) . ": file is writeable and was last modified: " . $fileModified);
                                 if ($fileModified !== FALSE and $fileModified < $now - $threshold) {
                                     $mail = Tool::getMail(array($email), "pimcore log notification - " . $file);
                                     $mail->setIgnoreDebugMode(true);
                                     $mail->setBodyText(file_get_contents(PIMCORE_LOG_MAIL_TEMP . "/" . $file));
                                     $mail->send();
                                     @unlink(PIMCORE_LOG_MAIL_TEMP . "/" . $file);
                                     \Logger::debug(get_class($this) . ": sent mail and deleted temp log file " . $file);
                                 } else {
                                     if ($fileModified > $now - $threshold) {
                                         \Logger::debug(get_class($this) . ": leaving temp log file alone because file [ {$file} ] was written to within the last 15 minutes");
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 \Logger::err(get_class($this) . ": Cannot send mail to configured log user [" . $user->getName() . "] because email is empty");
             }
         } else {
             \Logger::err(get_class($this) . ": Cannot send mail to configured log user. User is either null or not an admin");
         }
     } else {
         \Logger::debug(get_class($this) . ": No log recipient configured");
     }
 }
Пример #4
0
 /**
  * @static
  *
  */
 public static function initLogger()
 {
     // for forks, etc ...
     \Logger::resetLoggers();
     // try to load configuration
     $conf = Config::getSystemConfig();
     if ($conf) {
         // redirect php error_log to /website/var/log/php.log
         if ($conf->general->custom_php_logfile) {
             $phpLog = PIMCORE_LOG_DIRECTORY . "/php.log";
             if (!file_exists($phpLog)) {
                 touch($phpLog);
             }
             if (is_writable($phpLog)) {
                 ini_set("error_log", $phpLog);
                 ini_set("log_errors", "1");
             }
         }
     }
     if (!is_file(PIMCORE_LOG_DEBUG)) {
         if (is_writable(dirname(PIMCORE_LOG_DEBUG))) {
             File::put(PIMCORE_LOG_DEBUG, "AUTOCREATE\n");
         }
     }
     $prioMapping = array("debug" => \Zend_Log::DEBUG, "info" => \Zend_Log::INFO, "notice" => \Zend_Log::NOTICE, "warning" => \Zend_Log::WARN, "error" => \Zend_Log::ERR, "critical" => \Zend_Log::CRIT, "alert" => \Zend_Log::ALERT, "emergency" => \Zend_Log::EMERG);
     $prios = array();
     if ($conf && $conf->general->debugloglevel) {
         $prioMapping = array_reverse($prioMapping);
         foreach ($prioMapping as $level => $state) {
             $prios[] = $prioMapping[$level];
             if ($level == $conf->general->debugloglevel) {
                 break;
             }
         }
     } else {
         // log everything if config isn't loaded (eg. at the installer)
         foreach ($prioMapping as $p) {
             $prios[] = $p;
         }
     }
     \Logger::setPriorities($prios);
     if (is_writable(PIMCORE_LOG_DEBUG)) {
         // check for big logfile, empty it if it's bigger than about 200M
         if (filesize(PIMCORE_LOG_DEBUG) > 200000000) {
             rename(PIMCORE_LOG_DEBUG, PIMCORE_LOG_DEBUG . "-archive-" . date("m-d-Y-H-i"));
             // archive log (will be cleaned up by maintenance)
             File::put(PIMCORE_LOG_DEBUG, "");
         }
         if (!empty($prios)) {
             $writerFile = new \Zend_Log_Writer_Stream(PIMCORE_LOG_DEBUG);
             $loggerFile = new \Zend_Log($writerFile);
             \Logger::addLogger($loggerFile);
         }
         $conf = Config::getSystemConfig();
         if ($conf) {
             //email logger
             if (!empty($conf->general->logrecipient)) {
                 $user = User::getById($conf->general->logrecipient);
                 if ($user instanceof User && $user->isAdmin()) {
                     $email = $user->getEmail();
                     if (!empty($email)) {
                         $mail = Tool::getMail(array($email), "pimcore log notification");
                         $mail->setIgnoreDebugMode(true);
                         if (!is_dir(PIMCORE_LOG_MAIL_TEMP)) {
                             File::mkdir(PIMCORE_LOG_MAIL_TEMP);
                         }
                         $tempfile = PIMCORE_LOG_MAIL_TEMP . "/log-" . uniqid() . ".log";
                         $writerEmail = new \Pimcore\Log\Writer\Mail($tempfile, $mail);
                         $loggerEmail = new \Zend_Log($writerEmail);
                         \Logger::addLogger($loggerEmail);
                     }
                 }
             }
         }
     } else {
         // try to use syslog instead
         try {
             $writerSyslog = new \Zend_Log_Writer_Syslog(array('application' => 'pimcore'));
             $loggerSyslog = new \Zend_Log($writerSyslog);
             \Logger::addLogger($loggerSyslog);
         } catch (\Exception $e) {
         }
     }
     if (array_key_exists("pimcore_log", $_REQUEST) && self::inDebugMode()) {
         if (empty($_REQUEST["pimcore_log"])) {
             $requestLogName = date("Y-m-d_H-i-s");
         } else {
             $requestLogName = $_REQUEST["pimcore_log"];
         }
         $requestLogFile = dirname(PIMCORE_LOG_DEBUG) . "/request-" . $requestLogName . ".log";
         if (!file_exists($requestLogFile)) {
             File::put($requestLogFile, "");
         }
         $writerRequestLog = new \Zend_Log_Writer_Stream($requestLogFile);
         $loggerRequest = new \Zend_Log($writerRequestLog);
         \Logger::addLogger($loggerRequest);
         \Logger::setVerbosePriorities();
     }
 }
 protected function featureBug()
 {
     $conf = \Pimcore\Config::getSystemConfig();
     $email = $conf->general->contactemail;
     $this->view->contactEmail = $email;
     if (!$this->getParam("submit")) {
         if (HtmlToImage::isSupported()) {
             $file = PIMCORE_TEMPORARY_DIRECTORY . "/screen-" . uniqid() . ".jpeg";
             HtmlToImage::convert($this->getParam("url"), $file, 1280, "jpeg");
             $this->view->image = str_replace(PIMCORE_DOCUMENT_ROOT, "", $file);
         }
     } else {
         // send the request
         $type = $this->view->type;
         $urlParts = parse_url($this->getParam("url"));
         $subject = "Feature Request for ";
         if ($type == "bug") {
             $subject = "Bug Report for ";
         }
         $subject .= $urlParts["host"];
         $mail = \Pimcore\Tool::getMail($email, $subject, "UTF-8");
         $mail->setIgnoreDebugMode(true);
         $bodyText = "URL: " . $this->getParam("url") . "\n\n";
         $bodyText .= "Description: \n\n" . $this->getParam("description");
         $image = null;
         if (HtmlToImage::isSupported()) {
             $markers = \Zend_Json::decode($this->getParam("markers"));
             $screenFile = PIMCORE_DOCUMENT_ROOT . $this->getParam("screenshot");
             list($width, $height) = getimagesize($screenFile);
             $im = imagecreatefromjpeg($screenFile);
             $font = PIMCORE_DOCUMENT_ROOT . "/pimcore/static6/font/vera.ttf";
             $fontSize = 10;
             if ($markers && count($markers) > 0) {
                 foreach ($markers as $marker) {
                     // set up array of points for polygon
                     $x = $marker["position"]["left"] * $width / 100;
                     $y = $marker["position"]["top"] * $height / 100;
                     $bbox = imagettfbbox($fontSize, 0, $font, $marker["text"]);
                     $textWidth = $bbox[4] + 10;
                     $values = array($x, $y, $x - 10, $y - 10, $x - 10, $y - 40, $x + $textWidth, $y - 40, $x + $textWidth, $y - 10, $x + 10, $y - 10);
                     $textcolor = imagecolorallocate($im, 255, 255, 255);
                     $bgcolor = imagecolorallocatealpha($im, 0, 0, 0, 30);
                     // draw a polygon
                     imagefilledpolygon($im, $values, 6, $bgcolor);
                     imagettftext($im, $fontSize, 0, $x, $y - 20, $textcolor, $font, $marker["text"]);
                 }
             }
             imagejpeg($im, $screenFile);
             imagedestroy($im);
             $image = file_get_contents($screenFile);
             unlink($screenFile);
         }
         if ($image) {
             $bodyText .= "\n\n\nsee attached file: screen.jpg";
             $at = $mail->createAttachment($image);
             $at->type = 'image/jpeg';
             $at->disposition = \Zend_Mime::DISPOSITION_ATTACHMENT;
             $at->encoding = \Zend_Mime::ENCODING_BASE64;
             $at->filename = 'screen.jpg';
         }
         if ($type == "bug") {
             $bodyText .= "\n\n";
             $bodyText .= "Details: \n\n";
             foreach ($_SERVER as $key => $value) {
                 $bodyText .= $key . " => " . $value . "\n";
             }
         }
         $mail->setBodyText($bodyText);
         $mail->send();
     }
     $this->renderScript("/admin-button/feature-bug.php");
 }