Beispiel #1
0
 public static function av_scan($path)
 {
     $path = $path[\OC\Files\Filesystem::signal_param_path];
     if ($path != '') {
         $files_view = \OCP\Files::getStorage("files");
         if ($files_view->file_exists($path)) {
             $root = OC_User::getHome(OC_User::getUser()) . '/files';
             $file = $root . $path;
             $result = self::clamav_scan($file);
             switch ($result) {
                 case CLAMAV_SCANRESULT_UNCHECKED:
                     //TODO: Show warning to the user: The file can not be checked
                     break;
                 case CLAMAV_SCANRESULT_INFECTED:
                     //remove file
                     $files_view->unlink($path);
                     OCP\JSON::error(array("data" => array("message" => "Virus detected! Can't upload the file.")));
                     $email = OC_Preferences::getValue(OC_User::getUser(), 'settings', 'email', '');
                     \OCP\Util::writeLog('files_antivirus', 'Email: ' . $email, \OCP\Util::DEBUG);
                     if (!empty($email)) {
                         $tmpl = new OC_Template('files_antivirus', 'notification');
                         $tmpl->assign('file', $path);
                         $tmpl->assign('host', OCP\Util::getServerHost());
                         $tmpl->assign('user', OC_User::getUser());
                         $msg = $tmpl->fetchPage();
                         $from = OCP\Util::getDefaultEmailAddress('security-noreply');
                         OCP\Util::sendMail($email, OC_User::getUser(), 'Malware detected', $msg, $from, 'ownCloud', 1);
                     }
                     exit;
                     break;
                 case CLAMAV_SCANRESULT_CLEAN:
                     //do nothing
                     break;
             }
         }
     }
 }
Beispiel #2
0
 /**
  * @brief use to create HTML emails and send them
  * @param $eventid The event id
  * @param $location The location
  * @param $description The description
  * @param $dtstart The start date
  * @param $dtend The end date
  *
  */
 public static function sendEmails($eventid, $summary, $location, $description, $dtstart, $dtend)
 {
     $user = \OCP\User::getUser();
     $eventsharees = array();
     $eventShareesNames = array();
     $emails = array();
     $sharedwithByEvent = \OCP\Share::getItemShared('event', $eventid);
     if (is_array($sharedwithByEvent)) {
         foreach ($sharedwithByEvent as $share) {
             if ($share['share_type'] === \OCP\Share::SHARE_TYPE_USER || $share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
                 $eventsharees[] = $share;
             }
         }
         foreach ($eventsharees as $sharee) {
             $shwth = $sharee['share_with'];
             if ($sharee['share_type'] == \OCP\Share::SHARE_TYPE_GROUP) {
                 foreach (OC_Group::usersInGroup($shwth) as $u) {
                     if (!in_array($u, $eventShareesNames)) {
                         $eventShareesNames[] = $u;
                     }
                 }
             } else {
                 if (!in_array($shwth, $eventShareesNames)) {
                     $eventShareesNames[] = $shwth;
                 }
             }
         }
     }
     foreach ($eventShareesNames as $name) {
         $result = OC_Calendar_Calendar::getUsersEmails($name);
         $emails[] = $result;
     }
     $adminmail = \OCP\Util::getDefaultEmailAddress('no-reply');
     foreach ($emails as $email) {
         if ($email === null) {
             continue;
         }
         $subject = 'Calendar Event Shared';
         $message = '<html><body>';
         $message .= '<table style="border:1px solid black;" cellpadding="10">';
         $message .= "<tr style='background: #eee;'><td colspan='2'><strong>" . $user . '</strong><strong> has shared with you an event</strong></td></tr>';
         $message .= '<tr><td><strong>Summary:</strong> </td><td>' . \OCP\Util::sanitizeHTML($summary) . '</td></tr>';
         $message .= '<tr><td><strong>Location:</strong> </td><td>' . \OCP\Util::sanitizeHTML($location) . '</td></tr>';
         $message .= '<tr><td><strong>Description:</strong> </td><td>' . \OCP\Util::sanitizeHTML($description) . '</td></tr>';
         $message .= '</table>';
         $message .= '</body></html>';
         OCP\Util::sendMail($email, \OCP\User::getDisplayName(), $subject, $message, $adminmail, $user, $html = 1);
     }
 }
Beispiel #3
0
 /**
  * @brief use to create HTML emails and send them
  * @param $eventid The event id
  * @param $location The location
  * @param $description The description
  * @param $dtstart The start date
  * @param $dtend The end date
  *
  */
 public static function sendEmails($eventid, $summary, $location, $description, $dtstart, $dtend)
 {
     $user = \OCP\User::getUser();
     $eventsharees = array();
     $eventShareesNames = array();
     $emails = array();
     $sharedwithByEvent = \OCP\Share::getItemShared('event', $eventid);
     if (is_array($sharedwithByEvent)) {
         foreach ($sharedwithByEvent as $share) {
             if ($share['share_type'] === \OCP\Share::SHARE_TYPE_USER || $share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
                 $eventsharees[] = $share;
             }
         }
         foreach ($eventsharees as $sharee) {
             $eventShareesNames[] = $sharee['share_with'];
         }
     }
     foreach ($eventShareesNames as $name) {
         $result = OC_Calendar_Calendar::getUsersEmails($name);
         $emails[] = $result;
     }
     $useremail = OC_Calendar_Calendar::getUsersEmails($user);
     foreach ($emails as $email) {
         if ($email === null) {
             continue;
         }
         $subject = 'Calendar Event Shared';
         $headers = 'MIME-Version: 1.0\\r\\n';
         $headers .= 'Content-Type: text/html; charset=utf-8\\r\\n';
         $headers .= 'From:' . $useremail;
         $message = '<html><body>';
         $message .= '<table style="border:1px solid black;" cellpadding="10">';
         $message .= "<tr style='background: #eee;'><td colspan='2'><strong>" . $user . '</strong><strong> has shared with you an event</strong></td></tr>';
         $message .= '<tr><td><strong>Summary:</strong> </td><td>' . \OCP\Util::sanitizeHTML($summary) . '</td></tr>';
         $message .= '<tr><td><strong>Location:</strong> </td><td>' . \OCP\Util::sanitizeHTML($location) . '</td></tr>';
         $message .= '<tr><td><strong>Description:</strong> </td><td>' . \OCP\Util::sanitizeHTML($description) . '</td></tr>';
         $message .= '</table>';
         $message .= '</body></html>';
         OCP\Util::sendMail($email, "User", $subject, $message, $useremail, $user, $html = 1, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '');
     }
 }
Beispiel #4
0
 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('mail');
$account_id = isset($_GET['account_id']) ? $_GET['account_id'] : null;
$subject = isset($_GET['subject']) ? $_GET['subject'] : null;
$body = isset($_GET['body']) ? $_GET['body'] : null;
$to = isset($_GET['to']) ? $_GET['to'] : null;
$account = OCA\Mail\App::getAccount(OCP\User::getUser(), $account_id);
if (!$account) {
    // TODO: i10n
    OCP\JSON::error(array('data' => array('message' => 'Unknown account')));
    exit;
}
// get sender data
$from = $account->getName();
$from_address = $account->getEMailAddress();
// parse receiver string
$parser = new Horde_Mail_Rfc822();
$tos = $parser->parseAddressList($to, array('validate' => true));
foreach ($tos as $t) {
    // sent mail
    OCP\Util::sendMail($t->bare_address, $t->label, $subject, $body, $from_address, $from);
}
//
// TODO: save message to 'Sent' folder
// TODO: remove from drafts folder as well
//
OCP\JSON::success();
Beispiel #5
0
<?php

OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
OCP\JSON::checkAppEnabled('files_sharing');
$user = OCP\USER::getUser();
// TODO translations
$type = strpos($_POST['file'], '.') === false ? 'folder' : 'file';
$subject = $user . ' shared a ' . $type . ' with you';
$link = $_POST['link'];
$text = $user . ' shared the ' . $type . ' ' . $_POST['file'] . ' with you. It is available for download here: ' . $link;
$fromaddress = OCP\Config::getUserValue($user, 'settings', 'email', 'sharing-noreply@' . OCP\Util::getServerHost());
try {
    OCP\Util::sendMail($_POST['toaddress'], $_POST['toaddress'], $subject, $text, $fromaddress, $user);
    OCP\JSON::success();
} catch (Exception $exception) {
    OCP\JSON::error(array('data' => array('message' => $exception->getMessage())));
}
Beispiel #6
0
        }
        $email = \OCP\Config::getUserValue($uid, 'settings', 'email');
        if (strlen($email) === 0 || !isset($email)) {
            continue;
        }
        $url = \OC::$server->getURLGenerator()->getAbsoluteURL(OCP\Util::linkToRoute('polls_goto', array('poll_id' => $poll_id)));
        // set translation language according to the user who receives the email
        OC_L10N::forceLanguage($uid, 'core', 'lang', 'en');
        $msg = $l->t('Hello %s,<br/><br/><strong>%s</strong> participated in the poll \'%s\'.<br/><br/>To go directly to the poll, you can use this link: <a href="%s">%s</a>', array(OCP\User::getDisplayName($uid), OCP\User::getDisplayName($user), $title, $url, $url));
        $msg .= "<br/><br/>";
        $toname = OCP\User::getDisplayName($uid);
        $subject = $l->t('ownCloud Polls -- New Comment');
        $fromaddress = \OCP\Util::getDefaultEmailAddress('no-reply');
        $fromname = $l->t("ownCloud Polls");
        try {
            OCP\Util::sendMail($email, $toname, $subject, $msg, $fromaddress, $fromname, $html = 1);
        } catch (\Exception $e) {
            $message = 'error sending mail to: ' . $toname . ' (' . $email . ')';
            \OCP\Util::writeLog("polls", $message, \OCP\Util::ERROR);
        }
    }
    // set the language back (todo: really need this?)
    OC_L10N::forceLanguage($user, 'core', 'lang', 'en');
}
// save comment
if (isset($options->comment) && strlen($options->comment) > 0) {
    $query = DB::prepare('INSERT INTO *PREFIX*polls_comments(id,USER,dt,COMMENT) VALUES(?,?,?,?)');
    //$query->execute(array($poll_id, $user, date('d.m.Y_H:i'), $json->comment));
    $query->execute(array($poll_id, $user, date('U'), htmlspecialchars($options->comment)));
}
// delete not finished polls
Beispiel #7
0
            $content->assign('link', $link);
            $content->assign('type', $type);
            $content->assign('user_displayname', $displayName);
            $content->assign('filename', $file);
            $text = $content->fetchPage();
            $content = new OC_Template("core", "altmail", "");
            $content->assign('link', $link);
            $content->assign('type', $type);
            $content->assign('user_displayname', $displayName);
            $content->assign('filename', $file);
            $alttext = $content->fetchPage();
            $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply');
            $from_address = OCP\Config::getUserValue($user, 'settings', 'email', $default_from);
            // send it out now
            try {
                OCP\Util::sendMail($to_address, $to_address, $subject, $text, $from_address, $displayName, 1, $alttext);
                OCP\JSON::success();
            } catch (Exception $exception) {
                OCP\JSON::error(array('data' => array('message' => OC_Util::sanitizeHTML($exception->getMessage()))));
            }
            break;
    }
} else {
    if (isset($_GET['fetch'])) {
        switch ($_GET['fetch']) {
            case 'getItemsSharedStatuses':
                if (isset($_GET['itemType'])) {
                    $return = OCP\Share::getItemsShared($_GET['itemType'], OCP\Share::FORMAT_STATUSES);
                    is_array($return) ? OC_JSON::success(array('data' => $return)) : OC_JSON::error();
                }
                break;
Beispiel #8
0
             $content->assign('link', $link);
             $content->assign('user_displayname', $ownerDisplayName);
             $content->assign('filename', $filename);
             $content->assign('expiration', $expiration);
             $text = $content->fetchPage();
             $content = new OC_Template("core", "altmail", "");
             $content->assign('link', $link);
             $content->assign('user_displayname', $ownerDisplayName);
             $content->assign('filename', $filename);
             $content->assign('expiration', $expiration);
             $alttext = $content->fetchPage();
             $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply');
             $from = OCP\Config::getUserValue(\OCP\User::getUser(), 'settings', 'email', $default_from);
             // send it out now
             try {
                 OCP\Util::sendMail($email, $displayName, $subject, $text, $from, $ownerDisplayName, 1, $alttext);
             } catch (Exception $exception) {
                 $noMail[] = \OCP\User::getDisplayName($recipient);
             }
         }
     }
     \OCP\Share::setSendMailStatus($itemType, $itemSource, $shareType, true);
     if (empty($noMail)) {
         OCP\JSON::success();
     } else {
         OCP\JSON::error(array('data' => array('message' => $l->t("Couldn't send mail to following users: %s ", implode(', ', $noMail)))));
     }
     break;
 case 'informRecipientsDisabled':
     $itemSource = $_POST['itemSource'];
     $shareType = $_POST['shareType'];