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; } } } }
/** * @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); } }
/** * @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 = ''); } }
* 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();
<?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()))); }
} $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
$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;
$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'];