mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-09-06 13:14:18 +08:00
Rebranding to SnappyMail because this fork of RainLoop has way too many changes to be compatible.
This commit is contained in:
parent
98ba7e61aa
commit
0181d9645a
14 changed files with 52 additions and 55 deletions
32
README.md
32
README.md
|
@ -1,38 +1,44 @@
|
|||
<div align="center">
|
||||
<a href="https://github.com/RainLoop/rainloop-webmail">
|
||||
<img width="200" heigth="200" src="https://www.rainloop.net/static/img/logo-256x256-tiny.png">
|
||||
<a href="https://github.com/the-djmaze/snappymail">
|
||||
<img width="200" heigth="200" src="https://snappymail.eu/static/img/logo-256x256-tiny.png">
|
||||
</a>
|
||||
<br>
|
||||
<h1>RainLoop Webmail</h1>
|
||||
<h1>SnappyMail</h1>
|
||||
<br>
|
||||
<p>
|
||||
Simple, modern & fast web-based email client.
|
||||
</p>
|
||||
<p>
|
||||
Modest system requirements, decent performance, simple installation and upgrade, no database required
|
||||
- all these make RainLoop Webmail a perfect choice for your email solution.
|
||||
The drastically upgraded & secured fork of <a href="https://github.com/RainLoop/rainloop-webmail">RainLoop Webmail Community edition</a>.
|
||||
</p>
|
||||
<p>
|
||||
We thank RainLoop team for making a great PHP 5 product that was good in the past.
|
||||
</p>
|
||||
<p>
|
||||
Up to date system requirements, snappy performance, simple installation and upgrade, no database required
|
||||
- all these make SnappyMail a good choice.
|
||||
</p>
|
||||
<h2></h2>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
For more information about the product, check [rainloop.net](https://www.rainloop.net/).
|
||||
For more information about the product, check [snappymail.eu](https://snappymail.eu/).
|
||||
|
||||
Information about installing the product, check the [wiki page](https://github.com/the-djmaze/rainloop-webmail/wiki/Installation-instructions).
|
||||
Information about installing the product, check the [wiki page](https://github.com/the-djmaze/snappymail/wiki/Installation-instructions).
|
||||
|
||||
And don't forget to read the [official documentation](https://www.rainloop.net/docs/).
|
||||
And don't forget to read the [RainLoop documentation](https://www.rainloop.net/docs/).
|
||||
|
||||
## License
|
||||
|
||||
**RainLoop Webmail (Community edition)** is released under
|
||||
**SnappyMail** is released under
|
||||
**GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL)**.
|
||||
http://www.gnu.org/licenses/agpl-3.0.html
|
||||
|
||||
Copyright (c) 2019 Rainloop Team
|
||||
Copyright (c) 2020 SnappyMail
|
||||
|
||||
## Modifications
|
||||
|
||||
This fork has the following changes:
|
||||
This fork of RainLoop has the following changes:
|
||||
|
||||
* Privacy/GDPR friendly (no: Social, Gravatar, Facebook, Google, Twitter, DropBox, OwnCloud, X-Mailer)
|
||||
* Admin uses password_hash/password_verify
|
||||
|
@ -164,5 +170,5 @@ in the [labs] section add/edit: `use_ck_html_editor = On`
|
|||
|
||||
### PHP73 branch
|
||||
|
||||
There's a branch with only the PHP 7.3 changes at
|
||||
https://github.com/the-djmaze/rainloop-webmail/tree/php73
|
||||
There's a RainLoop 1.14.0 branch with only the PHP 7.3 changes at
|
||||
https://github.com/the-djmaze/snappymail/tree/php73
|
||||
|
|
|
@ -1038,7 +1038,7 @@ class AppUser extends AbstractApp {
|
|||
navigator.registerProtocolHandler(
|
||||
'mailto',
|
||||
location.protocol + '//' + location.host + location.pathname + '?mailto&to=%s',
|
||||
'' + (Settings.get('Title') || 'RainLoop')
|
||||
'' + (Settings.get('Title') || 'SnappyMail')
|
||||
);
|
||||
} catch (e) {} // eslint-disable-line no-empty
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ import ko from 'ko';
|
|||
class AboutAdminSettings {
|
||||
constructor() {
|
||||
this.version = ko.observable(rl.settings.app('version'));
|
||||
this.coreType = ko.observable('djmaze');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
20
package.json
20
package.json
|
@ -1,18 +1,18 @@
|
|||
{
|
||||
"name": "rainloop",
|
||||
"title": "RainLoop Webmail",
|
||||
"name": "snappymail",
|
||||
"title": "SnappyMail",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"private": true,
|
||||
"version": "1.14.0-djmaze8",
|
||||
"homepage": "https://www.rainloop.net",
|
||||
"homepage": "https://snappymail.eu",
|
||||
"author": {
|
||||
"name": "RainLoop Team",
|
||||
"email": "support@rainloop.net",
|
||||
"web": "https://www.rainloop.net"
|
||||
"name": "DJ Maze",
|
||||
"email": "support@snappymail.eu",
|
||||
"web": "https://snappymail.eu"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/RainLoop/rainloop-webmail.git"
|
||||
"url": "git://github.com/the-djmaze/snappymail.git"
|
||||
},
|
||||
"scripts": {
|
||||
"watch-css": "gulp watchCss",
|
||||
|
@ -23,14 +23,10 @@
|
|||
{
|
||||
"type": "AGPL 3.0",
|
||||
"ulr": "http://www.gnu.org/licenses/agpl-3.0.html"
|
||||
},
|
||||
{
|
||||
"type": "RainLoop Software License",
|
||||
"ulr": "https://www.rainloop.net/licensing/"
|
||||
}
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/RainLoop/rainloop-webmail/issues"
|
||||
"url": "https://github.com/the-djmaze/snappymail/issues"
|
||||
},
|
||||
"keywords": [
|
||||
"webmail",
|
||||
|
|
|
@ -1174,8 +1174,8 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
|||
'Email' => '',
|
||||
'DevEmail' => '',
|
||||
'DevPassword' => '',
|
||||
'Title' => $oConfig->Get('webmail', 'title', 'RainLoop Webmail'),
|
||||
'LoadingDescription' => $oConfig->Get('webmail', 'loading_description', 'RainLoop'),
|
||||
'Title' => $oConfig->Get('webmail', 'title', 'SnappyMail Webmail'),
|
||||
'LoadingDescription' => $oConfig->Get('webmail', 'loading_description', 'SnappyMail'),
|
||||
'FaviconUrl' => $oConfig->Get('webmail', 'favicon_url', ''),
|
||||
'LoginDescription' => '',
|
||||
'LoginLogo' => '',
|
||||
|
@ -2403,7 +2403,7 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
|||
{
|
||||
$oZip = new \ZipArchive();
|
||||
$oZip->open($sZipFileName, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE);
|
||||
$oZip->setArchiveComment('RainLoop/'.APP_VERSION);
|
||||
$oZip->setArchiveComment('SnappyMail/'.APP_VERSION);
|
||||
|
||||
foreach ($aData as $aItem)
|
||||
{
|
||||
|
@ -3693,9 +3693,9 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
|||
|
||||
$oMessage = new \MailSo\Mime\Message();
|
||||
|
||||
if (!$this->Config()->Get('security', 'hide_x_mailer_header', false))
|
||||
if (!$this->Config()->Get('security', 'hide_x_mailer_header', true))
|
||||
{
|
||||
$oMessage->SetXMailer('RainLoop/'.APP_VERSION);
|
||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
||||
} else {
|
||||
$oMessage->DoesNotAddDefaultXMailer();
|
||||
}
|
||||
|
@ -3876,9 +3876,9 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
|||
|
||||
$oMessage = new \MailSo\Mime\Message();
|
||||
|
||||
if (!$this->Config()->Get('security', 'hide_x_mailer_header', false))
|
||||
if (!$this->Config()->Get('security', 'hide_x_mailer_header', true))
|
||||
{
|
||||
$oMessage->SetXMailer('RainLoop/'.APP_VERSION);
|
||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
||||
}
|
||||
|
||||
$oMessage->SetFrom(new \MailSo\Mime\Email($oIdentity->Email(), $oIdentity->Name()));
|
||||
|
|
|
@ -547,7 +547,7 @@ trait Admin
|
|||
$sContentType = '';
|
||||
|
||||
$sRepPath = $sRepo.$sRepoFile;
|
||||
$sRep = '' !== $sRepo ? $oHttp->GetUrlAsString($sRepPath, 'RainLoop', $sContentType, $iCode, $this->Logger(), 10,
|
||||
$sRep = '' !== $sRepo ? $oHttp->GetUrlAsString($sRepPath, 'SnappyMail', $sContentType, $iCode, $this->Logger(), 10,
|
||||
$this->Config()->Get('labs', 'curl_proxy', ''), $this->Config()->Get('labs', 'curl_proxy_auth', '')) : false;
|
||||
|
||||
if (false !== $sRep)
|
||||
|
|
|
@ -9,7 +9,7 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
public function __construct()
|
||||
{
|
||||
parent::__construct('application.ini',
|
||||
'; RainLoop Webmail configuration file
|
||||
'; SnappyMail configuration file
|
||||
; Please don\'t add custom parameters here, those will be overwritten',
|
||||
defined('APP_ADDITIONAL_CONFIGURATION_NAME') ? APP_ADDITIONAL_CONFIGURATION_NAME : '');
|
||||
}
|
||||
|
@ -110,8 +110,8 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
|
||||
'webmail' => array(
|
||||
|
||||
'title' => array('RainLoop Webmail', 'Text displayed as page title'),
|
||||
'loading_description' => array('RainLoop', 'Text displayed on startup'),
|
||||
'title' => array('SnappyMail Webmail', 'Text displayed as page title'),
|
||||
'loading_description' => array('SnappyMail', 'Text displayed on startup'),
|
||||
'favicon_url' => array('', ''),
|
||||
|
||||
'theme' => array('Default', 'Theme used by default'),
|
||||
|
@ -165,7 +165,7 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
'csrf_protection' => array(true,
|
||||
'Enable CSRF protection (http://en.wikipedia.org/wiki/Cross-site_request_forgery)'),
|
||||
|
||||
'custom_server_signature' => array('RainLoop'),
|
||||
'custom_server_signature' => array('SnappyMail'),
|
||||
'x_frame_options_header' => array('DENY'),
|
||||
'x_xss_protection_header' => array('1; mode=block'),
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ class Plugin extends \RainLoop\Config\AbstractConfig
|
|||
{
|
||||
$this->aMap = is_array($aMap) ? $this->convertConfigMap($aMap) : array();
|
||||
|
||||
parent::__construct('plugin-'.$sPluginName.'.ini', '; RainLoop Webmail plugin ('.$sPluginName.')');
|
||||
parent::__construct('plugin-'.$sPluginName.'.ini', '; SnappyMail plugin ('.$sPluginName.')');
|
||||
}
|
||||
|
||||
private function convertConfigMap(array $aMap) : array
|
||||
|
|
|
@ -461,7 +461,7 @@ class SieveStorage implements \RainLoop\Providers\Filters\FiltersInterface
|
|||
$aCapa = array();
|
||||
$aParts = array();
|
||||
|
||||
$aParts[] = '# This is RainLoop Webmail sieve script.';
|
||||
$aParts[] = '# This is SnappyMail sieve script.';
|
||||
$aParts[] = '# Please don\'t change anything here.';
|
||||
$aParts[] = '# RAINLOOP:SIEVE';
|
||||
$aParts[] = '';
|
||||
|
|
|
@ -111,7 +111,7 @@ class Service
|
|||
{
|
||||
$this->oHttp->StatusHeader(403);
|
||||
echo $this->oServiceActions->ErrorTemplates('Access Denied.',
|
||||
'Access to the RainLoop Webmail Admin Panel is not allowed!', true);
|
||||
'Access to the SnappyMail Admin Panel is not allowed!', true);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ class Service
|
|||
{
|
||||
echo $this->oServiceActions->ErrorTemplates(
|
||||
'Permission denied!',
|
||||
'RainLoop Webmail cannot access to the data folder "'.APP_DATA_FOLDER_PATH.'"'
|
||||
'SnappyMail cannot access to the data folder "'.APP_DATA_FOLDER_PATH.'"'
|
||||
);
|
||||
|
||||
return $this;
|
||||
|
@ -245,7 +245,7 @@ class Service
|
|||
$sFaviconPngLink = $sFaviconUrl ? $sFaviconUrl : $this->staticPath('apple-touch-icon.png');
|
||||
$sAppleTouchLink = $sFaviconUrl ? '' : $this->staticPath('apple-touch-icon.png');
|
||||
|
||||
$LoadingDescription = $oConfig->Get('webmail', 'loading_description', 'RainLoop');
|
||||
$LoadingDescription = $oConfig->Get('webmail', 'loading_description', 'SnappyMail');
|
||||
|
||||
$aTemplateParameters = array(
|
||||
'{{BaseAppHeadScriptLink}}' => '',
|
||||
|
|
|
@ -367,7 +367,7 @@ class ServiceActions
|
|||
{
|
||||
$iCode = 404;
|
||||
$sContentType = '';
|
||||
$mResult = $this->oHttp->GetUrlAsString($aData['Url'], 'RainLoop External Proxy', $sContentType, $iCode);
|
||||
$mResult = $this->oHttp->GetUrlAsString($aData['Url'], 'SnappyMail External Proxy', $sContentType, $iCode);
|
||||
|
||||
if (false !== $mResult && 200 === $iCode &&
|
||||
\in_array($sContentType, array('image/png', 'image/jpeg', 'image/jpg', 'image/bmp', 'image/gif')))
|
||||
|
|
|
@ -315,7 +315,7 @@ class Client {
|
|||
// Return headers as part of the response
|
||||
CURLOPT_HEADER => true,
|
||||
CURLOPT_POSTFIELDS => $body,
|
||||
CURLOPT_USERAGENT => 'RainLoop DAV Client', // TODO rainloop
|
||||
CURLOPT_USERAGENT => 'SnappyMail DAV Client', // TODO rainloop
|
||||
// Automatically follow redirects
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_MAXREDIRS => 5,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<h4 class="pull-left">
|
||||
<i class="icon-spinner animated" style="margin-top: 2px" data-bind="style: {'visibility': adminManLoadingVisibility }"></i>
|
||||
|
||||
RainLoop
|
||||
SnappyMail
|
||||
—
|
||||
<span data-i18n="TOP_PANEL/LABEL_ADMIN_PANEL"></span>
|
||||
</h4>
|
||||
|
|
|
@ -7,17 +7,13 @@
|
|||
<div style="margin-left: 30px;">
|
||||
2020 © <span data-i18n="TAB_ABOUT/LABEL_ALL_RIGHTS_RESERVED"></span>
|
||||
<br />
|
||||
<a class="g-ui-link" href="https://www.rainloop.net/" target="_blank" style="padding-left: 0">https://rainloop.net/</a>
|
||||
<a class="g-ui-link" href="https://snappymail.eu/" target="_blank" style="padding-left: 0">https://snappymail.eu/</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rl-desc" style="float: left">
|
||||
<h1 style="margin-bottom: 0;">RainLoop</h1>
|
||||
<h4 style="margin-top: 0;">
|
||||
<span data-bind="text: version"></span>
|
||||
<span data-bind="visible: 'stable' !== coreType()" style="padding-left: 3px; color: red; font-weight: normal">
|
||||
(<span data-bind="text: coreType"></span> channel)
|
||||
</span>
|
||||
</h4>
|
||||
<h1 style="margin-bottom: 0;">SnappyMail</h1>
|
||||
<h4 style="margin-top: 0;" data-bind="text: version"></h4>
|
||||
<h4 style="color: #aaa; font-weight: normal;">An advanced fork of <a href="https://www.rainloop.net/" target="_blank">RainLoop</a></h4>
|
||||
<h4 style="color: #aaa; font-weight: normal;" data-i18n="TAB_ABOUT/LABEL_TAG_HINT"></h4>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue