mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-25 10:09:20 +03:00
Update SnappyMail repository references to nextgen-networks
Replaced references to https://github.com/the-djmaze/snappymail with https://github.com/nextgen-networks/snappymail/ across the repository, excluding README files as requested. The replacement handles trailing slashes carefully to ensure bare URLs include the slash while sub-paths (like /issues/ or .git) do not result in double slashes. Files that already used the new domain were also updated to ensure consistent trailing slash usage. Co-authored-by: nextgen-networks <21206978+nextgen-networks@users.noreply.github.com>
This commit is contained in:
parent
a88d24c38a
commit
0b86edb167
83 changed files with 844 additions and 844 deletions
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -31,7 +31,7 @@ If applicable, add screenshots to help explain your problem.
|
||||||
- Mode: [e.g. standalone, nextcloud, cyberpanel, docker]
|
- Mode: [e.g. standalone, nextcloud, cyberpanel, docker]
|
||||||
|
|
||||||
**Debug/logging information**
|
**Debug/logging information**
|
||||||
[Read here how to log](https://github.com/the-djmaze/snappymail/wiki/FAQ#how-do-i-enable-logging)
|
[Read here how to log](https://github.com/nextgen-networks/snappymail/wiki/FAQ#how-do-i-enable-logging)
|
||||||
- [ ] I've placed them here (few lines) or as attachments (many lines)
|
- [ ] I've placed them here (few lines) or as attachments (many lines)
|
||||||
|
|
||||||
**Additional context**
|
**Additional context**
|
||||||
|
|
|
||||||
1124
CHANGELOG.md
1124
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
|
@ -11,7 +11,7 @@
|
||||||
2. Install node.js - `https://nodejs.org/download/`
|
2. Install node.js - `https://nodejs.org/download/`
|
||||||
3. Install yarn - `https://yarnpkg.com/en/docs/install`
|
3. Install yarn - `https://yarnpkg.com/en/docs/install`
|
||||||
4. Install gulp - `npm install gulp -g`
|
4. Install gulp - `npm install gulp -g`
|
||||||
5. Fork snappymail from https://github.com/the-djmaze/snappymail
|
5. Fork snappymail from https://github.com/nextgen-networks/snappymail/
|
||||||
6. Clone snappymail - `git clone git@github.com:USERNAME/snappymail.git snappymail`
|
6. Clone snappymail - `git clone git@github.com:USERNAME/snappymail.git snappymail`
|
||||||
7. `cd snappymail`
|
7. `cd snappymail`
|
||||||
8. Install all dependencies - `yarn install`
|
8. Install all dependencies - `yarn install`
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ pkgrel=1
|
||||||
pkgdesc="modern PHP webmail client"
|
pkgdesc="modern PHP webmail client"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
license=('AGPL3')
|
license=('AGPL3')
|
||||||
url="https://github.com/nextgen-networks/snappymail"
|
url="https://github.com/nextgen-networks/snappymail/"
|
||||||
depends=('php-fpm')
|
depends=('php-fpm')
|
||||||
makedepends=('php', 'nodejs' 'yarn' 'gulp', 'rollup')
|
makedepends=('php', 'nodejs' 'yarn' 'gulp', 'rollup')
|
||||||
optdepends=('mariadb: storage backend for contacts'
|
optdepends=('mariadb: storage backend for contacts'
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ passthru('mv '
|
||||||
|
|
||||||
passthru('rm -dfr '.escapeshellarg(DEB_DEST_DIR));
|
passthru('rm -dfr '.escapeshellarg(DEB_DEST_DIR));
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/185#issuecomment-1059420588
|
// https://github.com/nextgen-networks/snappymail/issues/185#issuecomment-1059420588
|
||||||
$cwd = getcwd();
|
$cwd = getcwd();
|
||||||
chdir($TARGET_DIR);
|
chdir($TARGET_DIR);
|
||||||
passthru('dpkg-scanpackages . /dev/null > '.escapeshellarg($TARGET_DIR . 'Packages'));
|
passthru('dpkg-scanpackages . /dev/null > '.escapeshellarg($TARGET_DIR . 'Packages'));
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ Recommends: php-intl, php-sodium, php-uuid
|
||||||
Suggests: php-sqlite3 | php-mysql | php-pgsql, php-curl, php-exif, php-gnupg, php-gd | php-gmagick | php-imagick, php-openssl, php-zip
|
Suggests: php-sqlite3 | php-mysql | php-pgsql, php-curl, php-exif, php-gnupg, php-gd | php-gmagick | php-imagick, php-openssl, php-zip
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Homepage: https://snappymail.eu
|
Homepage: https://snappymail.eu
|
||||||
Vcs-Browser: https://github.com/the-djmaze/snappymail
|
Vcs-Browser: https://github.com/nextgen-networks/snappymail/
|
||||||
Vcs-Git: https://github.com/the-djmaze/snappymail.git
|
Vcs-Git: https://github.com/nextgen-networks/snappymail.git
|
||||||
Description: SnappyMail is a PHP-based simple, modern, lightweight & fast web-based email client with no database requirements.
|
Description: SnappyMail is a PHP-based simple, modern, lightweight & fast web-based email client with no database requirements.
|
||||||
It supports IMAP, SMTP and Sieve protocols, multiple accounts and identities, an admin panel for configuration.
|
It supports IMAP, SMTP and Sieve protocols, multiple accounts and identities, an admin panel for configuration.
|
||||||
Plugins can be installed to further extend functionality.
|
Plugins can be installed to further extend functionality.
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,7 @@ if ($options['aur']) {
|
||||||
pkgdesc = modern PHP webmail client
|
pkgdesc = modern PHP webmail client
|
||||||
pkgver = '.$package->version.'
|
pkgver = '.$package->version.'
|
||||||
pkgrel = 1
|
pkgrel = 1
|
||||||
url = https://github.com/nextgen-networks/snappymail
|
url = https://github.com/nextgen-networks/snappymail/
|
||||||
arch = any
|
arch = any
|
||||||
license = AGPL3
|
license = AGPL3
|
||||||
makedepends = php
|
makedepends = php
|
||||||
|
|
|
||||||
|
|
@ -308,16 +308,16 @@ export const
|
||||||
// Not supported by <template> element
|
// Not supported by <template> element
|
||||||
// .replace(/<!doctype[^>]*>/gi, '')
|
// .replace(/<!doctype[^>]*>/gi, '')
|
||||||
// .replace(/<\?xml[^>]*\?>/gi, '')
|
// .replace(/<\?xml[^>]*\?>/gi, '')
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1860
|
// https://github.com/nextgen-networks/snappymail/issues/1860
|
||||||
.replace(/<(\/?)x-html(\s[^>]*)?>/gi, '')
|
.replace(/<(\/?)x-html(\s[^>]*)?>/gi, '')
|
||||||
.replace(/<(\/?)head(\s[^>]*)?>/gi, '')
|
.replace(/<(\/?)head(\s[^>]*)?>/gi, '')
|
||||||
.replace(/<(\/?)body(\s[^>]*)?>/gi, '<$1div class="mail-body"$2>')
|
.replace(/<(\/?)body(\s[^>]*)?>/gi, '<$1div class="mail-body"$2>')
|
||||||
// .replace(/<\/?(html|head)[^>]*>/gi, '')
|
// .replace(/<\/?(html|head)[^>]*>/gi, '')
|
||||||
// Fix Reddit https://github.com/the-djmaze/snappymail/issues/540
|
// Fix Reddit https://github.com/nextgen-networks/snappymail/issues/540
|
||||||
.replace(/<span class="preview-text"[\s\S]+?<\/span>/, '')
|
.replace(/<span class="preview-text"[\s\S]+?<\/span>/, '')
|
||||||
// https://github.com/the-djmaze/snappymail/issues/900
|
// https://github.com/nextgen-networks/snappymail/issues/900
|
||||||
.replace(/\u2028/g,' ')
|
.replace(/\u2028/g,' ')
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1415
|
// https://github.com/nextgen-networks/snappymail/issues/1415
|
||||||
.replace(/<br>\s*<\/p>/gi,'</p>')
|
.replace(/<br>\s*<\/p>/gi,'</p>')
|
||||||
.trim();
|
.trim();
|
||||||
html = '';
|
html = '';
|
||||||
|
|
@ -343,7 +343,7 @@ export const
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1125
|
// https://github.com/nextgen-networks/snappymail/issues/1125
|
||||||
tmpl.content.querySelectorAll(keepTagContent).forEach(oElement => replaceWithChildren(oElement));
|
tmpl.content.querySelectorAll(keepTagContent).forEach(oElement => replaceWithChildren(oElement));
|
||||||
|
|
||||||
tmpl.content.querySelectorAll(
|
tmpl.content.querySelectorAll(
|
||||||
|
|
@ -359,7 +359,7 @@ export const
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1641
|
// https://github.com/nextgen-networks/snappymail/issues/1641
|
||||||
let body = tmpl.content.querySelector('.mail-body');
|
let body = tmpl.content.querySelector('.mail-body');
|
||||||
[...tmpl.content.querySelectorAll('.mail-body + .mail-body')]
|
[...tmpl.content.querySelectorAll('.mail-body + .mail-body')]
|
||||||
.forEach(oElement => body.append(...oElement.childNodes));
|
.forEach(oElement => body.append(...oElement.childNodes));
|
||||||
|
|
@ -626,7 +626,7 @@ export const
|
||||||
setAttribute('data-x-style-broken-urls', JSON.stringify(urls_broken));
|
setAttribute('data-x-style-broken-urls', JSON.stringify(urls_broken));
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1082
|
// https://github.com/nextgen-networks/snappymail/issues/1082
|
||||||
if (11 > pInt(oStyle.fontSize)) {
|
if (11 > pInt(oStyle.fontSize)) {
|
||||||
oStyle.removeProperty('font-size');
|
oStyle.removeProperty('font-size');
|
||||||
}
|
}
|
||||||
|
|
@ -775,7 +775,7 @@ export const
|
||||||
plain = plain.toString()
|
plain = plain.toString()
|
||||||
.replace(/\r/g, '')
|
.replace(/\r/g, '')
|
||||||
.replace(/^>[> ]>+/gm, ([match]) => (match ? match.replace(/[ ]+/g, '') : match))
|
.replace(/^>[> ]>+/gm, ([match]) => (match ? match.replace(/[ ]+/g, '') : match))
|
||||||
// https://github.com/the-djmaze/snappymail/issues/900
|
// https://github.com/nextgen-networks/snappymail/issues/900
|
||||||
.replace(/\u2028/g,' ');
|
.replace(/\u2028/g,' ');
|
||||||
|
|
||||||
let bIn = false,
|
let bIn = false,
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ loadAccountsAndIdentities = () => {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Invoke "Update Identity" pop up right after login
|
// Invoke "Update Identity" pop up right after login
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1689
|
// https://github.com/nextgen-networks/snappymail/issues/1689
|
||||||
const main = IdentityUserStore.main();
|
const main = IdentityUserStore.main();
|
||||||
main && !main.exists() && setTimeout(()=>editIdentity(main), 1000);
|
main && !main.exists() && setTimeout(()=>editIdentity(main), 1000);
|
||||||
}
|
}
|
||||||
|
|
@ -69,7 +69,7 @@ loadAccountsAndIdentities = () => {
|
||||||
*/
|
*/
|
||||||
download = (link, name = "") => {
|
download = (link, name = "") => {
|
||||||
console.log('download: '+link);
|
console.log('download: '+link);
|
||||||
// Firefox 98 issue https://github.com/the-djmaze/snappymail/issues/301
|
// Firefox 98 issue https://github.com/nextgen-networks/snappymail/issues/301
|
||||||
if (ThemeStore.isMobile() || /firefox/i.test(navigator.userAgent)) {
|
if (ThemeStore.isMobile() || /firefox/i.test(navigator.userAgent)) {
|
||||||
open(link, '_blank');
|
open(link, '_blank');
|
||||||
focus();
|
focus();
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ export class EmailAddressesComponent {
|
||||||
datalist.append(new Option(item));
|
datalist.append(new Option(item));
|
||||||
chars = Math.max(chars, item.length);
|
chars = Math.max(chars, item.length);
|
||||||
});
|
});
|
||||||
// https://github.com/the-djmaze/snappymail/issues/368 and #513
|
// https://github.com/nextgen-networks/snappymail/issues/368 and #513
|
||||||
chars *= 8;
|
chars *= 8;
|
||||||
if (input.clientWidth < chars) {
|
if (input.clientWidth < chars) {
|
||||||
input.style.width = chars + 'px';
|
input.style.width = chars + 'px';
|
||||||
|
|
|
||||||
6
dev/External/SquireUI.js
vendored
6
dev/External/SquireUI.js
vendored
|
|
@ -38,13 +38,13 @@ class SquireUI
|
||||||
const
|
const
|
||||||
clr = createElement('input'),
|
clr = createElement('input'),
|
||||||
doClr = name => input => {
|
doClr = name => input => {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/826
|
// https://github.com/nextgen-networks/snappymail/issues/826
|
||||||
clr.style.left = (input.offsetLeft + input.parentNode.offsetLeft) + 'px';
|
clr.style.left = (input.offsetLeft + input.parentNode.offsetLeft) + 'px';
|
||||||
clr.style.width = input.offsetWidth + 'px';
|
clr.style.width = input.offsetWidth + 'px';
|
||||||
|
|
||||||
clr.value = '';
|
clr.value = '';
|
||||||
clr.onchange = () => squire.setStyle({[name]:clr.value});
|
clr.onchange = () => squire.setStyle({[name]:clr.value});
|
||||||
// Chrome 110+ https://github.com/the-djmaze/snappymail/issues/1199
|
// Chrome 110+ https://github.com/nextgen-networks/snappymail/issues/1199
|
||||||
// clr.oninput = () => squire.setStyle({[name]:clr.value});
|
// clr.oninput = () => squire.setStyle({[name]:clr.value});
|
||||||
setTimeout(()=>clr.click(),1);
|
setTimeout(()=>clr.click(),1);
|
||||||
},
|
},
|
||||||
|
|
@ -263,7 +263,7 @@ class SquireUI
|
||||||
|
|
||||||
clr.type = 'color';
|
clr.type = 'color';
|
||||||
toolbar.append(clr);
|
toolbar.append(clr);
|
||||||
// Chrome https://github.com/the-djmaze/snappymail/issues/1199
|
// Chrome https://github.com/nextgen-networks/snappymail/issues/1199
|
||||||
let clrid = 'squire-colors',
|
let clrid = 'squire-colors',
|
||||||
colorlist = doc.getElementById(clrid),
|
colorlist = doc.getElementById(clrid),
|
||||||
add = hex => colorlist.append(new Option(hex));
|
add = hex => colorlist.append(new Option(hex));
|
||||||
|
|
|
||||||
|
|
@ -438,8 +438,8 @@ export class FolderModel extends AbstractModel {
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
// TODO: make this optional in Settings
|
// TODO: make this optional in Settings
|
||||||
// https://github.com/the-djmaze/snappymail/issues/457
|
// https://github.com/nextgen-networks/snappymail/issues/457
|
||||||
// https://github.com/the-djmaze/snappymail/issues/567
|
// https://github.com/nextgen-networks/snappymail/issues/567
|
||||||
const
|
const
|
||||||
unread = this.unreadEmails(),
|
unread = this.unreadEmails(),
|
||||||
type = this.type();
|
type = this.type();
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ fetchJSON = (action, sUrl, params, timeout, jsonCallback) => {
|
||||||
params.Action = action;
|
params.Action = action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Don't abort, read https://github.com/the-djmaze/snappymail/issues/487
|
// Don't abort, read https://github.com/nextgen-networks/snappymail/issues/487
|
||||||
// abort(action, 0, 1);
|
// abort(action, 0, 1);
|
||||||
const controller = new AbortController(),
|
const controller = new AbortController(),
|
||||||
signal = controller.signal;
|
signal = controller.signal;
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ export class UserSettingsSecurity extends AbstractViewSettings {
|
||||||
*/
|
*/
|
||||||
window.mailvelope && mailvelope.createSettingsContainer('#mailvelope-settings'/*[, keyring], options*/);
|
window.mailvelope && mailvelope.createSettingsContainer('#mailvelope-settings'/*[, keyring], options*/);
|
||||||
/**
|
/**
|
||||||
* https://github.com/the-djmaze/snappymail/issues/973
|
* https://github.com/nextgen-networks/snappymail/issues/973
|
||||||
Remote.request('GetStoredPGPKeys', (iError, data) => {
|
Remote.request('GetStoredPGPKeys', (iError, data) => {
|
||||||
console.dir([iError, data]);
|
console.dir([iError, data]);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ let __themeTimer = 0;
|
||||||
export const
|
export const
|
||||||
// Also see Styles/_Values.less @maxMobileWidth
|
// Also see Styles/_Values.less @maxMobileWidth
|
||||||
isMobile = matchMedia('(max-width: 799px)'),
|
isMobile = matchMedia('(max-width: 799px)'),
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1150
|
// https://github.com/nextgen-networks/snappymail/issues/1150
|
||||||
// isSmall = matchMedia('(max-width: 1400px)'),
|
// isSmall = matchMedia('(max-width: 1400px)'),
|
||||||
|
|
||||||
ThemeStore = {
|
ThemeStore = {
|
||||||
|
|
|
||||||
|
|
@ -508,7 +508,7 @@ MessagelistUserStore.moveMessages = (
|
||||||
} else {
|
} else {
|
||||||
MessagelistUserStore.isIncomplete(true);
|
MessagelistUserStore.isIncomplete(true);
|
||||||
|
|
||||||
// Select next email https://github.com/the-djmaze/snappymail/issues/968
|
// Select next email https://github.com/nextgen-networks/snappymail/issues/968
|
||||||
if (currentMessage && 1 == messages.length && SettingsUserStore.showNextMessage()) {
|
if (currentMessage && 1 == messages.length && SettingsUserStore.showNextMessage()) {
|
||||||
let next = MessagelistUserStore.indexOf(currentMessage) + 1;
|
let next = MessagelistUserStore.indexOf(currentMessage) + 1;
|
||||||
if (0 < next && (next = MessagelistUserStore()[next])) {
|
if (0 < next && (next = MessagelistUserStore()[next])) {
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ dialog:not(.animate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* https://github.com/the-djmaze/snappymail/issues/686
|
* https://github.com/nextgen-networks/snappymail/issues/686
|
||||||
*/
|
*/
|
||||||
@media screen and (max-width: @maxMobileWidth) {
|
@media screen and (max-width: @maxMobileWidth) {
|
||||||
dialog {
|
dialog {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* https://github.com/the-djmaze/snappymail/issues/1427 */
|
/* https://github.com/nextgen-networks/snappymail/issues/1427 */
|
||||||
#V-MailFolderList .e-checkbox {
|
#V-MailFolderList .e-checkbox {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
width: calc(100% - 8px);
|
width: calc(100% - 8px);
|
||||||
|
|
|
||||||
|
|
@ -968,7 +968,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
||||||
// no default
|
// no default
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/491
|
// https://github.com/nextgen-networks/snappymail/issues/491
|
||||||
tpl.innerHTML = oLastMessage.bodyAsHTML();
|
tpl.innerHTML = oLastMessage.bodyAsHTML();
|
||||||
tpl.content.querySelectorAll('img').forEach(img => {
|
tpl.content.querySelectorAll('img').forEach(img => {
|
||||||
img.src || img.dataset.xSrc || img.replaceWith(img.alt || img.title)
|
img.src || img.dataset.xSrc || img.replaceWith(img.alt || img.title)
|
||||||
|
|
|
||||||
|
|
@ -269,7 +269,7 @@ export class DomainPopupView extends AbstractViewPopup {
|
||||||
|
|
||||||
testConnectionCommand() {
|
testConnectionCommand() {
|
||||||
this.clearTesting();
|
this.clearTesting();
|
||||||
// https://github.com/the-djmaze/snappymail/issues/477
|
// https://github.com/nextgen-networks/snappymail/issues/477
|
||||||
AskPopupView.credentials('IMAP', 'GLOBAL/TEST').then(credentials => {
|
AskPopupView.credentials('IMAP', 'GLOBAL/TEST').then(credentials => {
|
||||||
if (credentials) {
|
if (credentials) {
|
||||||
this.testing(true);
|
this.testing(true);
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||||
Test message body with example TNEF part from
|
Test message body with example TNEF part from
|
||||||
https://github.com/Yeraze/ytnef
|
https://github.com/Yeraze/ytnef
|
||||||
|
|
||||||
https://github.com/the-djmaze/snappymail/discussions/1012
|
https://github.com/nextgen-networks/snappymail/discussions/1012
|
||||||
|
|
||||||
--=-2UbcDuksJBAwUNBNW7UD
|
--=-2UbcDuksJBAwUNBNW7UD
|
||||||
Content-Type: application/vnd.ms-tnef
|
Content-Type: application/vnd.ms-tnef
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ WORKDIR /app/code
|
||||||
|
|
||||||
# If you change the extraction below, be sure to test on scaleway
|
# If you change the extraction below, be sure to test on scaleway
|
||||||
VERSION=2.38.2
|
VERSION=2.38.2
|
||||||
RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \
|
RUN wget https://github.com/nextgen-networks/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \
|
||||||
unzip /tmp/snappymail.zip -d /app/code && \
|
unzip /tmp/snappymail.zip -d /app/code && \
|
||||||
rm /tmp/snappymail.zip && \
|
rm /tmp/snappymail.zip && \
|
||||||
find /app/code/snappymail -type d -exec chmod 755 {} \; && \
|
find /app/code/snappymail -type d -exec chmod 755 {} \; && \
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,4 @@ In the SnappyMail admin prompt, the default login is "admin" and the default pas
|
||||||
This is it, you are now free to configure SnappyMail as you wish. One important point is the Domains section when you will set up the IMAP/SMTP parameters that shall be associated with the email adresses of your users.
|
This is it, you are now free to configure SnappyMail as you wish. One important point is the Domains section when you will set up the IMAP/SMTP parameters that shall be associated with the email adresses of your users.
|
||||||
|
|
||||||
STUCK IN MAINTENANCE:
|
STUCK IN MAINTENANCE:
|
||||||
https://github.com/the-djmaze/snappymail/issues/929
|
https://github.com/nextgen-networks/snappymail/issues/929
|
||||||
|
|
|
||||||
|
|
@ -25,20 +25,20 @@ There, click on the link to go to the SnappyMail admin panel.
|
||||||
]]></description>
|
]]></description>
|
||||||
<namespace>SnappyMail</namespace>
|
<namespace>SnappyMail</namespace>
|
||||||
<documentation>
|
<documentation>
|
||||||
<user>https://github.com/the-djmaze/snappymail/blob/master/integrations/nextcloud/snappymail/README.md</user>
|
<user>https://github.com/nextgen-networks/snappymail/blob/master/integrations/nextcloud/snappymail/README.md</user>
|
||||||
<admin>https://github.com/the-djmaze/snappymail/wiki/Admin-Manual</admin>
|
<admin>https://github.com/nextgen-networks/snappymail/wiki/Admin-Manual</admin>
|
||||||
<developer>https://github.com/the-djmaze/snappymail/wiki/Developer-Documentation</developer>
|
<developer>https://github.com/nextgen-networks/snappymail/wiki/Developer-Documentation</developer>
|
||||||
<website>https://github.com/the-djmaze/snappymail/wiki</website>
|
<website>https://github.com/nextgen-networks/snappymail/wiki</website>
|
||||||
</documentation>
|
</documentation>
|
||||||
<category>integration</category>
|
<category>integration</category>
|
||||||
<category>office</category>
|
<category>office</category>
|
||||||
<category>search</category>
|
<category>search</category>
|
||||||
<category>social</category>
|
<category>social</category>
|
||||||
<screenshot>https://raw.githubusercontent.com/the-djmaze/snappymail/master/integrations/nextcloud/screenshots/inbox.jpg</screenshot>
|
<screenshot>https://raw.githubusercontent.com/nextgen-networks/snappymail/master/integrations/nextcloud/screenshots/inbox.jpg</screenshot>
|
||||||
<website>https://snappymail.eu</website>
|
<website>https://snappymail.eu</website>
|
||||||
<discussion>https://github.com/the-djmaze/snappymail/discussions</discussion>
|
<discussion>https://github.com/nextgen-networks/snappymail/discussions</discussion>
|
||||||
<repository>https://github.com/the-djmaze/snappymail/tree/master/integrations/nextcloud</repository>
|
<repository>https://github.com/nextgen-networks/snappymail/tree/master/integrations/nextcloud</repository>
|
||||||
<bugs>https://github.com/the-djmaze/snappymail/issues</bugs>
|
<bugs>https://github.com/nextgen-networks/snappymail/issues</bugs>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<php min-version="7.4" min-int-size="32" />
|
<php min-version="7.4" min-int-size="32" />
|
||||||
<lib>mbstring</lib>
|
<lib>mbstring</lib>
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ body > header ul {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Firefox < 98
|
* Firefox < 98
|
||||||
* https://github.com/the-djmaze/snappymail/issues/673
|
* https://github.com/nextgen-networks/snappymail/issues/673
|
||||||
*/
|
*/
|
||||||
#rl-app dialog.polyfill {
|
#rl-app dialog.polyfill {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
|
|
@ -93,7 +93,7 @@ body > header ul {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hampoelz
|
* hampoelz
|
||||||
* https://github.com/the-djmaze/snappymail/issues/96#issuecomment-1279783076
|
* https://github.com/nextgen-networks/snappymail/issues/96#issuecomment-1279783076
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.messageList {
|
.messageList {
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class InstallStep implements IRepairStep
|
||||||
$app_dir = \dirname(\dirname(__DIR__)) . '/app';
|
$app_dir = \dirname(\dirname(__DIR__)) . '/app';
|
||||||
// $app_dir = \rtrim(APP_INDEX_ROOT_PATH, '\\/');
|
// $app_dir = \rtrim(APP_INDEX_ROOT_PATH, '\\/');
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/790#issuecomment-1366527884
|
// https://github.com/nextgen-networks/snappymail/issues/790#issuecomment-1366527884
|
||||||
if (!\file_exists($app_dir . '/.htaccess') && \file_exists($app_dir . '/_htaccess')) {
|
if (!\file_exists($app_dir . '/.htaccess') && \file_exists($app_dir . '/_htaccess')) {
|
||||||
\rename($app_dir . '/_htaccess', $app_dir . '/.htaccess');
|
\rename($app_dir . '/_htaccess', $app_dir . '/.htaccess');
|
||||||
}
|
}
|
||||||
|
|
@ -125,7 +125,7 @@ class InstallStep implements IRepairStep
|
||||||
// check if admins provided additional/custom initial config file
|
// check if admins provided additional/custom initial config file
|
||||||
// https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#setting-a-single-configuration-value
|
// https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#setting-a-single-configuration-value
|
||||||
// ex: php occ config:app:set snappymail custom_config_file --value="/path/to/config.php"
|
// ex: php occ config:app:set snappymail custom_config_file --value="/path/to/config.php"
|
||||||
// https://github.com/the-djmaze/snappymail/pull/1197
|
// https://github.com/nextgen-networks/snappymail/pull/1197
|
||||||
try {
|
try {
|
||||||
$customConfigFile = $this->config->getAppValue(Application::APP_ID, 'custom_config_file');
|
$customConfigFile = $this->config->getAppValue(Application::APP_ID, 'custom_config_file');
|
||||||
if ($customConfigFile) {
|
if ($customConfigFile) {
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ class SnappyMailHelper
|
||||||
$aCredentials = static::getLoginCredentials();
|
$aCredentials = static::getLoginCredentials();
|
||||||
/*
|
/*
|
||||||
// NC25+ workaround for Impersonate plugin
|
// NC25+ workaround for Impersonate plugin
|
||||||
// https://github.com/the-djmaze/snappymail/issues/561#issuecomment-1301317723
|
// https://github.com/nextgen-networks/snappymail/issues/561#issuecomment-1301317723
|
||||||
// https://github.com/nextcloud/server/issues/34935#issuecomment-1302145157
|
// https://github.com/nextcloud/server/issues/34935#issuecomment-1302145157
|
||||||
require \OC::$SERVERROOT . '/version.php';
|
require \OC::$SERVERROOT . '/version.php';
|
||||||
// \OC\SystemConfig
|
// \OC\SystemConfig
|
||||||
|
|
@ -128,7 +128,7 @@ class SnappyMailHelper
|
||||||
if ($handle) {
|
if ($handle) {
|
||||||
\header_remove('Content-Security-Policy');
|
\header_remove('Content-Security-Policy');
|
||||||
\RainLoop\Service::Handle();
|
\RainLoop\Service::Handle();
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1069
|
// https://github.com/nextgen-networks/snappymail/issues/1069
|
||||||
exit;
|
exit;
|
||||||
// return new SnappyMailResponse();
|
// return new SnappyMailResponse();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,16 @@
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
- A lot of MessageList sorting improvements
|
- A lot of MessageList sorting improvements
|
||||||
[#796](https://github.com/the-djmaze/snappymail/pull/796)
|
[#796](https://github.com/nextgen-networks/snappymail/pull/796)
|
||||||
- On upgrade also update plugins in Nextcloud due to many misunderstandings and prevent invalid open issues
|
- On upgrade also update plugins in Nextcloud due to many misunderstandings and prevent invalid open issues
|
||||||
- Moved application.ini labs.use_app_debug_* to debug.*
|
- Moved application.ini labs.use_app_debug_* to debug.*
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
- Dutch translation for confusing message (threads vs grouped)
|
- Dutch translation for confusing message (threads vs grouped)
|
||||||
- Workaround Nextcloud disallowed .htaccess
|
- Workaround Nextcloud disallowed .htaccess
|
||||||
[#790](https://github.com/the-djmaze/snappymail/pull/790)
|
[#790](https://github.com/nextgen-networks/snappymail/pull/790)
|
||||||
- Searching on Nextcloud search failed
|
- Searching on Nextcloud search failed
|
||||||
[#787](https://github.com/the-djmaze/snappymail/pull/787)
|
[#787](https://github.com/nextgen-networks/snappymail/pull/787)
|
||||||
|
|
||||||
|
|
||||||
## 2.24.3 – 2022-12-28
|
## 2.24.3 – 2022-12-28
|
||||||
|
|
@ -24,32 +24,32 @@
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
- F5 and Ctrl-F5 reload logs out of Snappymail in Chrome.
|
- F5 and Ctrl-F5 reload logs out of Snappymail in Chrome.
|
||||||
[#800](https://github.com/the-djmaze/snappymail/pull/800)
|
[#800](https://github.com/nextgen-networks/snappymail/pull/800)
|
||||||
- Switching accounts does not work anymore with 2.24.2
|
- Switching accounts does not work anymore with 2.24.2
|
||||||
[#802](https://github.com/the-djmaze/snappymail/pull/802)
|
[#802](https://github.com/nextgen-networks/snappymail/pull/802)
|
||||||
|
|
||||||
|
|
||||||
## 2.24.2 – 2022-12-27
|
## 2.24.2 – 2022-12-27
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Disable sorting when viewing message thread
|
- Disable sorting when viewing message thread
|
||||||
[#445](https://github.com/the-djmaze/snappymail/pull/445)
|
[#445](https://github.com/nextgen-networks/snappymail/pull/445)
|
||||||
- Update Chinese translation by @mayswind
|
- Update Chinese translation by @mayswind
|
||||||
[#794](https://github.com/the-djmaze/snappymail/pull/794)
|
[#794](https://github.com/nextgen-networks/snappymail/pull/794)
|
||||||
- No need to call IMAP EXAMINE when current folder already SELECT
|
- No need to call IMAP EXAMINE when current folder already SELECT
|
||||||
- Thread view now has tree indentation
|
- Thread view now has tree indentation
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Nextcloud failed on Integrity check
|
- Nextcloud failed on Integrity check
|
||||||
[#790](https://github.com/the-djmaze/snappymail/pull/790)
|
[#790](https://github.com/nextgen-networks/snappymail/pull/790)
|
||||||
- Deleting message fails with message "Cannot move message" on hMailServer
|
- Deleting message fails with message "Cannot move message" on hMailServer
|
||||||
[#793](https://github.com/the-djmaze/snappymail/pull/793)
|
[#793](https://github.com/nextgen-networks/snappymail/pull/793)
|
||||||
- List messages per day feature is enabled by default and breaks sorting
|
- List messages per day feature is enabled by default and breaks sorting
|
||||||
[#796](https://github.com/the-djmaze/snappymail/pull/796)
|
[#796](https://github.com/nextgen-networks/snappymail/pull/796)
|
||||||
- Custom page login not working for first time due to smctoken security
|
- Custom page login not working for first time due to smctoken security
|
||||||
[#798](https://github.com/the-djmaze/snappymail/pull/798)
|
[#798](https://github.com/nextgen-networks/snappymail/pull/798)
|
||||||
- Message list is always empty due to wrong implementation of RFC 8474
|
- Message list is always empty due to wrong implementation of RFC 8474
|
||||||
[#799](https://github.com/the-djmaze/snappymail/pull/799)
|
[#799](https://github.com/nextgen-networks/snappymail/pull/799)
|
||||||
|
|
||||||
|
|
||||||
## 2.24.1 – 2022-12-23
|
## 2.24.1 – 2022-12-23
|
||||||
|
|
@ -58,15 +58,15 @@
|
||||||
- Intl.DateTimeFormat() into toLocaleString() for iOS < 14
|
- Intl.DateTimeFormat() into toLocaleString() for iOS < 14
|
||||||
- Cleanup locale date/time handling
|
- Cleanup locale date/time handling
|
||||||
- Make MessageList per day optional
|
- Make MessageList per day optional
|
||||||
[#737](https://github.com/the-djmaze/snappymail/pull/737)
|
[#737](https://github.com/nextgen-networks/snappymail/pull/737)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Typed property MailSo\Cache\Drivers\Redis::$sKeyPrefix must not be accessed before initialization #792
|
- Typed property MailSo\Cache\Drivers\Redis::$sKeyPrefix must not be accessed before initialization #792
|
||||||
[#792](https://github.com/the-djmaze/snappymail/pull/792)
|
[#792](https://github.com/nextgen-networks/snappymail/pull/792)
|
||||||
- Attachments in mails in 2.24 not loading in reply/forward #789
|
- Attachments in mails in 2.24 not loading in reply/forward #789
|
||||||
[#789](https://github.com/the-djmaze/snappymail/pull/789)
|
[#789](https://github.com/nextgen-networks/snappymail/pull/789)
|
||||||
- Rollback #280 due to complications
|
- Rollback #280 due to complications
|
||||||
[#280](https://github.com/the-djmaze/snappymail/pull/280)
|
[#280](https://github.com/nextgen-networks/snappymail/pull/280)
|
||||||
|
|
||||||
|
|
||||||
## 2.24.0 – 2022-12-22
|
## 2.24.0 – 2022-12-22
|
||||||
|
|
@ -79,24 +79,24 @@
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- MessageList now grouped/split per day
|
- MessageList now grouped/split per day
|
||||||
[#737](https://github.com/the-djmaze/snappymail/pull/737)
|
[#737](https://github.com/nextgen-networks/snappymail/pull/737)
|
||||||
- Account switcher still shown when allow_additional_accounts is set to Off
|
- Account switcher still shown when allow_additional_accounts is set to Off
|
||||||
[#280](https://github.com/the-djmaze/snappymail/pull/280)
|
[#280](https://github.com/nextgen-networks/snappymail/pull/280)
|
||||||
- PHP classes use typed properties
|
- PHP classes use typed properties
|
||||||
- Speedup Contacts Suggestions handling
|
- Speedup Contacts Suggestions handling
|
||||||
- Check SMTP SIZE
|
- Check SMTP SIZE
|
||||||
[#779](https://github.com/the-djmaze/snappymail/pull/779)
|
[#779](https://github.com/nextgen-networks/snappymail/pull/779)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Handle multiple DKIM signatures authentication results
|
- Handle multiple DKIM signatures authentication results
|
||||||
- Reload admin extensions on update
|
- Reload admin extensions on update
|
||||||
- SieveClient quoted string parsing failed
|
- SieveClient quoted string parsing failed
|
||||||
- Invalid Attachments (PDF)
|
- Invalid Attachments (PDF)
|
||||||
[#466](https://github.com/the-djmaze/snappymail/pull/466)
|
[#466](https://github.com/nextgen-networks/snappymail/pull/466)
|
||||||
- Email HTML images rendering issue
|
- Email HTML images rendering issue
|
||||||
[#564](https://github.com/the-djmaze/snappymail/pull/564)
|
[#564](https://github.com/nextgen-networks/snappymail/pull/564)
|
||||||
- "Server message: No supported SASL mechanism found, remote server wants:" in hMailServer
|
- "Server message: No supported SASL mechanism found, remote server wants:" in hMailServer
|
||||||
[#780](https://github.com/the-djmaze/snappymail/pull/780)
|
[#780](https://github.com/nextgen-networks/snappymail/pull/780)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- Some unused plugin hooks to improve Action handling speed
|
- Some unused plugin hooks to improve Action handling speed
|
||||||
|
|
@ -111,16 +111,16 @@
|
||||||
- Merge MailSo\Mail\Folder into MailSo\Imap\Folder and speedup process
|
- Merge MailSo\Mail\Folder into MailSo\Imap\Folder and speedup process
|
||||||
- SnappyMail\Imap\Sync now matches folders based on JMAP role
|
- SnappyMail\Imap\Sync now matches folders based on JMAP role
|
||||||
- Added the new imapsync.php command line script for
|
- Added the new imapsync.php command line script for
|
||||||
[#744](https://github.com/the-djmaze/snappymail/pull/744)
|
[#744](https://github.com/nextgen-networks/snappymail/pull/744)
|
||||||
- Added manual setting for 12/24h clock
|
- Added manual setting for 12/24h clock
|
||||||
[#760](https://github.com/the-djmaze/snappymail/pull/760)
|
[#760](https://github.com/nextgen-networks/snappymail/pull/760)
|
||||||
- Add options to mark the message I'm viewing as unread and return to the inbox #766
|
- Add options to mark the message I'm viewing as unread and return to the inbox #766
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Extension menu shows only some available extensions #778
|
- Extension menu shows only some available extensions #778
|
||||||
- New solution for [#423](https://github.com/the-djmaze/snappymail/pull/423) due to [#774](https://github.com/the-djmaze/snappymail/pull/774)
|
- New solution for [#423](https://github.com/nextgen-networks/snappymail/pull/423) due to [#774](https://github.com/nextgen-networks/snappymail/pull/774)
|
||||||
- Avatars extension error on smartphone
|
- Avatars extension error on smartphone
|
||||||
[#764](https://github.com/the-djmaze/snappymail/pull/764)
|
[#764](https://github.com/nextgen-networks/snappymail/pull/764)
|
||||||
- Don't fetch Unread count for main account
|
- Don't fetch Unread count for main account
|
||||||
- CSS .e-checkbox.material-design invisible on show/hide
|
- CSS .e-checkbox.material-design invisible on show/hide
|
||||||
|
|
||||||
|
|
@ -129,33 +129,33 @@
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Show the number of unread mails on all mail addresses/accounts
|
- Show the number of unread mails on all mail addresses/accounts
|
||||||
[#437](https://github.com/the-djmaze/snappymail/pull/437)
|
[#437](https://github.com/nextgen-networks/snappymail/pull/437)
|
||||||
- Show OpenSSL version in Admin => About
|
- Show OpenSSL version in Admin => About
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Redirect to login page instead of "invalid token" popup
|
- Redirect to login page instead of "invalid token" popup
|
||||||
[#752](https://github.com/the-djmaze/snappymail/pull/752)
|
[#752](https://github.com/nextgen-networks/snappymail/pull/752)
|
||||||
- Make all dialogs fit in mobile view
|
- Make all dialogs fit in mobile view
|
||||||
- Changed some Plugin hooks for better handling:
|
- Changed some Plugin hooks for better handling:
|
||||||
* json.action-pre-call => json.before-{actionname}
|
* json.action-pre-call => json.before-{actionname}
|
||||||
* json.action-post-call => json.after-{actionname}
|
* json.action-post-call => json.after-{actionname}
|
||||||
- Cleaner accounts list in systemdropdown
|
- Cleaner accounts list in systemdropdown
|
||||||
- Multiple imapConnect handling for new import mail feature
|
- Multiple imapConnect handling for new import mail feature
|
||||||
[#744](https://github.com/the-djmaze/snappymail/pull/744)
|
[#744](https://github.com/nextgen-networks/snappymail/pull/744)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Loosing HTML signature in account identity under settings
|
- Loosing HTML signature in account identity under settings
|
||||||
[#750](https://github.com/the-djmaze/snappymail/pull/750)
|
[#750](https://github.com/nextgen-networks/snappymail/pull/750)
|
||||||
- Plugin configuration did not load anymore when type was SELECTION by @cm-schl
|
- Plugin configuration did not load anymore when type was SELECTION by @cm-schl
|
||||||
[#753](https://github.com/the-djmaze/snappymail/pull/753)
|
[#753](https://github.com/nextgen-networks/snappymail/pull/753)
|
||||||
- Nextcloud Default theme shows gray text on gray background
|
- Nextcloud Default theme shows gray text on gray background
|
||||||
[#754](https://github.com/the-djmaze/snappymail/pull/754)
|
[#754](https://github.com/nextgen-networks/snappymail/pull/754)
|
||||||
- Only run JSON hooks when $sAction is set
|
- Only run JSON hooks when $sAction is set
|
||||||
[#755](https://github.com/the-djmaze/snappymail/pull/755)
|
[#755](https://github.com/nextgen-networks/snappymail/pull/755)
|
||||||
- Unsupported SASL mechanism OAUTHBEARER
|
- Unsupported SASL mechanism OAUTHBEARER
|
||||||
[#756](https://github.com/the-djmaze/snappymail/pull/756)
|
[#756](https://github.com/nextgen-networks/snappymail/pull/756)
|
||||||
[#758](https://github.com/the-djmaze/snappymail/pull/758)
|
[#758](https://github.com/nextgen-networks/snappymail/pull/758)
|
||||||
[#759](https://github.com/the-djmaze/snappymail/pull/759)
|
[#759](https://github.com/nextgen-networks/snappymail/pull/759)
|
||||||
- border-box issue with .buttonCompose
|
- border-box issue with .buttonCompose
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
@ -166,15 +166,15 @@
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Scroll bar with the mobile version in "Advanced search" screen
|
- Scroll bar with the mobile version in "Advanced search" screen
|
||||||
[#712](https://github.com/the-djmaze/snappymail/pull/712)
|
[#712](https://github.com/nextgen-networks/snappymail/pull/712)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Undefined property: MailSo\Mail\FolderCollection::$capabilities
|
- Undefined property: MailSo\Mail\FolderCollection::$capabilities
|
||||||
- PHP 8.2 Creation of dynamic property is deprecated
|
- PHP 8.2 Creation of dynamic property is deprecated
|
||||||
- Attempt to solve #745 in v2.22.6 failed and resulted in errors #746 and #748
|
- Attempt to solve #745 in v2.22.6 failed and resulted in errors #746 and #748
|
||||||
[#745](https://github.com/the-djmaze/snappymail/pull/745)
|
[#745](https://github.com/nextgen-networks/snappymail/pull/745)
|
||||||
[#746](https://github.com/the-djmaze/snappymail/pull/746)
|
[#746](https://github.com/nextgen-networks/snappymail/pull/746)
|
||||||
[#748](https://github.com/the-djmaze/snappymail/pull/748)
|
[#748](https://github.com/nextgen-networks/snappymail/pull/748)
|
||||||
- Admin domain test undefined matched domain should say email@example matched domain
|
- Admin domain test undefined matched domain should say email@example matched domain
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -182,15 +182,15 @@
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Narrow MessageList wraps star icon
|
- Narrow MessageList wraps star icon
|
||||||
[#737](https://github.com/the-djmaze/snappymail/pull/737)
|
[#737](https://github.com/nextgen-networks/snappymail/pull/737)
|
||||||
- Use UIDVALIDITY when HIGHESTMODSEQ not available, maybe solves
|
- Use UIDVALIDITY when HIGHESTMODSEQ not available, maybe solves
|
||||||
[#745](https://github.com/the-djmaze/snappymail/pull/745)
|
[#745](https://github.com/nextgen-networks/snappymail/pull/745)
|
||||||
- No need to generate 1000's of ID's for MessageListByRequestIndexOrUids()
|
- No need to generate 1000's of ID's for MessageListByRequestIndexOrUids()
|
||||||
- Update Chinese translation by @mayswind
|
- Update Chinese translation by @mayswind
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- PluginProperty DefaultValue contained array while it should not
|
- PluginProperty DefaultValue contained array while it should not
|
||||||
[#741](https://github.com/the-djmaze/snappymail/pull/741)
|
[#741](https://github.com/nextgen-networks/snappymail/pull/741)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- IMAP SELECT/EXAMINE unset `UNSEEN` because IMAP4rev2 deprecated
|
- IMAP SELECT/EXAMINE unset `UNSEEN` because IMAP4rev2 deprecated
|
||||||
|
|
@ -201,7 +201,7 @@
|
||||||
### Added
|
### Added
|
||||||
- Support plugin minified .min.js and .min.css
|
- Support plugin minified .min.js and .min.css
|
||||||
- ZIP Download multiple emails
|
- ZIP Download multiple emails
|
||||||
[#717](https://github.com/the-djmaze/snappymail/pull/717)
|
[#717](https://github.com/nextgen-networks/snappymail/pull/717)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Replaced some data-bind="click: function(){} with object functions to prevent eval()
|
- Replaced some data-bind="click: function(){} with object functions to prevent eval()
|
||||||
|
|
@ -210,12 +210,12 @@
|
||||||
### Fixed
|
### Fixed
|
||||||
- Settings Themes style due to border-box change
|
- Settings Themes style due to border-box change
|
||||||
- "Remember me" failed due to v2.22.4 Session token change
|
- "Remember me" failed due to v2.22.4 Session token change
|
||||||
[#719](https://github.com/the-djmaze/snappymail/pull/719)
|
[#719](https://github.com/nextgen-networks/snappymail/pull/719)
|
||||||
[#731](https://github.com/the-djmaze/snappymail/pull/731)
|
[#731](https://github.com/nextgen-networks/snappymail/pull/731)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- Vacation filter: Button to add recipients (+)
|
- Vacation filter: Button to add recipients (+)
|
||||||
[#728](https://github.com/the-djmaze/snappymail/pull/728)
|
[#728](https://github.com/nextgen-networks/snappymail/pull/728)
|
||||||
|
|
||||||
|
|
||||||
## 2.22.4 – 2022-11-28
|
## 2.22.4 – 2022-11-28
|
||||||
|
|
@ -223,19 +223,19 @@
|
||||||
### Changed
|
### Changed
|
||||||
- Contacts dialog layout using flex
|
- Contacts dialog layout using flex
|
||||||
- Session token is related to the user agent string
|
- Session token is related to the user agent string
|
||||||
[#713](https://github.com/the-djmaze/snappymail/pull/713)
|
[#713](https://github.com/nextgen-networks/snappymail/pull/713)
|
||||||
- Better browser cache handling for avatars plugin
|
- Better browser cache handling for avatars plugin
|
||||||
[#714](https://github.com/the-djmaze/snappymail/pull/714)
|
[#714](https://github.com/nextgen-networks/snappymail/pull/714)
|
||||||
- Force HTML editor when set as default when replying to message
|
- Force HTML editor when set as default when replying to message
|
||||||
[#355](https://github.com/the-djmaze/snappymail/pull/355)
|
[#355](https://github.com/nextgen-networks/snappymail/pull/355)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Contact Error - object Object
|
- Contact Error - object Object
|
||||||
[#716](https://github.com/the-djmaze/snappymail/pull/716)
|
[#716](https://github.com/nextgen-networks/snappymail/pull/716)
|
||||||
- Unable to move messages to different folder by drag and drop
|
- Unable to move messages to different folder by drag and drop
|
||||||
[#710](https://github.com/the-djmaze/snappymail/pull/710)
|
[#710](https://github.com/nextgen-networks/snappymail/pull/710)
|
||||||
- v2.22.3 unknown error
|
- v2.22.3 unknown error
|
||||||
[#709https://github.com/the-djmaze/snappymail/pull/709)
|
[#709https://github.com/nextgen-networks/snappymail/pull/709)
|
||||||
|
|
||||||
|
|
||||||
## 2.22.3 – 2022-11-25
|
## 2.22.3 – 2022-11-25
|
||||||
|
|
@ -245,14 +245,14 @@
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Improved cPanel integration
|
- Improved cPanel integration
|
||||||
[#697](https://github.com/the-djmaze/snappymail/pull/697)
|
[#697](https://github.com/nextgen-networks/snappymail/pull/697)
|
||||||
- Update to OpenPGP.js v5.5.0
|
- Update to OpenPGP.js v5.5.0
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- drag & drop folder expansion
|
- drag & drop folder expansion
|
||||||
[#707](https://github.com/the-djmaze/snappymail/pull/707)
|
[#707](https://github.com/nextgen-networks/snappymail/pull/707)
|
||||||
- Save selected messages as .eml in Nextcloud failed
|
- Save selected messages as .eml in Nextcloud failed
|
||||||
[#704](https://github.com/the-djmaze/snappymail/pull/704)
|
[#704](https://github.com/nextgen-networks/snappymail/pull/704)
|
||||||
|
|
||||||
|
|
||||||
## 2.22.2 – 2022-11-24
|
## 2.22.2 – 2022-11-24
|
||||||
|
|
@ -265,50 +265,50 @@
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- AddressBookInterface::GetContactByEmail() to support sender image/avatar extension
|
- AddressBookInterface::GetContactByEmail() to support sender image/avatar extension
|
||||||
[#115](https://github.com/the-djmaze/snappymail/pull/115)
|
[#115](https://github.com/nextgen-networks/snappymail/pull/115)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- All the attachment zone is not clickable, even if the cursor is a hand
|
- All the attachment zone is not clickable, even if the cursor is a hand
|
||||||
[#691](https://github.com/the-djmaze/snappymail/pull/691)
|
[#691](https://github.com/nextgen-networks/snappymail/pull/691)
|
||||||
- Different approach for "update button duplicated in admin panel"
|
- Different approach for "update button duplicated in admin panel"
|
||||||
[#677](https://github.com/the-djmaze/snappymail/pull/677)
|
[#677](https://github.com/nextgen-networks/snappymail/pull/677)
|
||||||
- Better drag & drop solution for leftPanel
|
- Better drag & drop solution for leftPanel
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- The page does not change after batch deletion
|
- The page does not change after batch deletion
|
||||||
[#684](https://github.com/the-djmaze/snappymail/pull/684)
|
[#684](https://github.com/nextgen-networks/snappymail/pull/684)
|
||||||
- Prevent domain uppercase issues found in
|
- Prevent domain uppercase issues found in
|
||||||
[#689](https://github.com/the-djmaze/snappymail/pull/689)
|
[#689](https://github.com/nextgen-networks/snappymail/pull/689)
|
||||||
- Login invalid response: VXNlcm5hbWU6CG
|
- Login invalid response: VXNlcm5hbWU6CG
|
||||||
[#693](https://github.com/the-djmaze/snappymail/pull/693)
|
[#693](https://github.com/nextgen-networks/snappymail/pull/693)
|
||||||
|
|
||||||
|
|
||||||
## 2.21.4 – 2022-11-22
|
## 2.21.4 – 2022-11-22
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Added domain matcher test for
|
- Added domain matcher test for
|
||||||
[#689](https://github.com/the-djmaze/snappymail/pull/689)
|
[#689](https://github.com/nextgen-networks/snappymail/pull/689)
|
||||||
- Download all Attachments of selected Emails
|
- Download all Attachments of selected Emails
|
||||||
[#361](https://github.com/the-djmaze/snappymail/pull/361)
|
[#361](https://github.com/nextgen-networks/snappymail/pull/361)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Log current shortcuts scope for
|
- Log current shortcuts scope for
|
||||||
[#690](https://github.com/the-djmaze/snappymail/pull/690)
|
[#690](https://github.com/nextgen-networks/snappymail/pull/690)
|
||||||
- CSS everything to be box-sizing: border-box;
|
- CSS everything to be box-sizing: border-box;
|
||||||
- Make messageview a bit larger so that it is the same height as the messagelist
|
- Make messageview a bit larger so that it is the same height as the messagelist
|
||||||
- Cleanup and rearrange some fontastic glyphs
|
- Cleanup and rearrange some fontastic glyphs
|
||||||
- Also show From email address by default
|
- Also show From email address by default
|
||||||
[#683](https://github.com/the-djmaze/snappymail/pull/683)
|
[#683](https://github.com/nextgen-networks/snappymail/pull/683)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Contact.display() returns [object Object]
|
- Contact.display() returns [object Object]
|
||||||
- When left panel disabled and drag messages, show it
|
- When left panel disabled and drag messages, show it
|
||||||
- Issue with admin domain connection type settings selectbox
|
- Issue with admin domain connection type settings selectbox
|
||||||
[#689](https://github.com/the-djmaze/snappymail/pull/689)
|
[#689](https://github.com/nextgen-networks/snappymail/pull/689)
|
||||||
- Mobile View on cellphones: automatic scrolling not working near the visual keyboard
|
- Mobile View on cellphones: automatic scrolling not working near the visual keyboard
|
||||||
[#686](https://github.com/the-djmaze/snappymail/pull/686)
|
[#686](https://github.com/nextgen-networks/snappymail/pull/686)
|
||||||
- Unable to separate runtime from installation
|
- Unable to separate runtime from installation
|
||||||
[#685](https://github.com/the-djmaze/snappymail/pull/685)
|
[#685](https://github.com/nextgen-networks/snappymail/pull/685)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- Removed inline parameter of checkbox and select components
|
- Removed inline parameter of checkbox and select components
|
||||||
|
|
@ -321,18 +321,18 @@
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Increase visible reading area for small screens
|
- Increase visible reading area for small screens
|
||||||
[#672](https://github.com/the-djmaze/snappymail/pull/672)
|
[#672](https://github.com/nextgen-networks/snappymail/pull/672)
|
||||||
- Improved message spam score detailed view
|
- Improved message spam score detailed view
|
||||||
- Improved DAV connection logging
|
- Improved DAV connection logging
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Handling attachments MIME type / content-type
|
- Handling attachments MIME type / content-type
|
||||||
- Message responsive resizing width/height of elements
|
- Message responsive resizing width/height of elements
|
||||||
[#678](https://github.com/the-djmaze/snappymail/pull/678)
|
[#678](https://github.com/nextgen-networks/snappymail/pull/678)
|
||||||
- Focus on textarea when creating a new plain text email
|
- Focus on textarea when creating a new plain text email
|
||||||
[#501](https://github.com/the-djmaze/snappymail/pull/501)
|
[#501](https://github.com/nextgen-networks/snappymail/pull/501)
|
||||||
- CardDav remove photos of my contacts when synchronizing
|
- CardDav remove photos of my contacts when synchronizing
|
||||||
[#679](https://github.com/the-djmaze/snappymail/pull/679)
|
[#679](https://github.com/nextgen-networks/snappymail/pull/679)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- \MailSo\Mime\Enumerations\MimeType
|
- \MailSo\Mime\Enumerations\MimeType
|
||||||
|
|
@ -340,21 +340,21 @@
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Use fontastic in Nextcloud Files selector dialog
|
- Use fontastic in Nextcloud Files selector dialog
|
||||||
- Firefox < 98 dialogs
|
- Firefox < 98 dialogs
|
||||||
[#673](https://github.com/the-djmaze/snappymail/pull/673)
|
[#673](https://github.com/nextgen-networks/snappymail/pull/673)
|
||||||
|
|
||||||
## 2.21.2 – 2022-11-15
|
## 2.21.2 – 2022-11-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Allow browser Spellchecker
|
- Allow browser Spellchecker
|
||||||
[#574](https://github.com/the-djmaze/snappymail/pull/574)
|
[#574](https://github.com/nextgen-networks/snappymail/pull/574)
|
||||||
- Decode MIME charset of .EML attachments
|
- Decode MIME charset of .EML attachments
|
||||||
[#662](https://github.com/the-djmaze/snappymail/pull/662)
|
[#662](https://github.com/nextgen-networks/snappymail/pull/662)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Increase message visible text area
|
- Increase message visible text area
|
||||||
[#672](https://github.com/the-djmaze/snappymail/pull/672)
|
[#672](https://github.com/nextgen-networks/snappymail/pull/672)
|
||||||
- When copy/paste image use the raw data instead of clipboard HTML
|
- When copy/paste image use the raw data instead of clipboard HTML
|
||||||
[#654](https://github.com/the-djmaze/snappymail/pull/654)
|
[#654](https://github.com/nextgen-networks/snappymail/pull/654)
|
||||||
- When application.ini debug.enable is true, also debug js and css
|
- When application.ini debug.enable is true, also debug js and css
|
||||||
- JavaScript rl.setWindowTitle() renamed to rl.setTitle()
|
- JavaScript rl.setWindowTitle() renamed to rl.setTitle()
|
||||||
|
|
||||||
|
|
@ -363,28 +363,28 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Workaround Nextcloud calendar crashes
|
- Workaround Nextcloud calendar crashes
|
||||||
[#622](https://github.com/the-djmaze/snappymail/pull/622)
|
[#622](https://github.com/nextgen-networks/snappymail/pull/622)
|
||||||
[#661](https://github.com/the-djmaze/snappymail/pull/661)
|
[#661](https://github.com/nextgen-networks/snappymail/pull/661)
|
||||||
- Added share public/internal file link
|
- Added share public/internal file link
|
||||||
[#569](https://github.com/the-djmaze/snappymail/pull/569)
|
[#569](https://github.com/nextgen-networks/snappymail/pull/569)
|
||||||
|
|
||||||
|
|
||||||
## 2.21.1 – 2022-11-13
|
## 2.21.1 – 2022-11-13
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Crypt crashes when Sodium not installed
|
- Crypt crashes when Sodium not installed
|
||||||
[#641](https://github.com/the-djmaze/snappymail/pull/641)
|
[#641](https://github.com/nextgen-networks/snappymail/pull/641)
|
||||||
[#657](https://github.com/the-djmaze/snappymail/pull/657)
|
[#657](https://github.com/nextgen-networks/snappymail/pull/657)
|
||||||
[#663](https://github.com/the-djmaze/snappymail/pull/663)
|
[#663](https://github.com/nextgen-networks/snappymail/pull/663)
|
||||||
[#664](https://github.com/the-djmaze/snappymail/pull/664)
|
[#664](https://github.com/nextgen-networks/snappymail/pull/664)
|
||||||
[#668](https://github.com/the-djmaze/snappymail/pull/668)
|
[#668](https://github.com/nextgen-networks/snappymail/pull/668)
|
||||||
[#669](https://github.com/the-djmaze/snappymail/pull/669)
|
[#669](https://github.com/nextgen-networks/snappymail/pull/669)
|
||||||
- Personalised favicon not working - default Snappymail favicon showing
|
- Personalised favicon not working - default Snappymail favicon showing
|
||||||
[#665](https://github.com/the-djmaze/snappymail/pull/665)
|
[#665](https://github.com/nextgen-networks/snappymail/pull/665)
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- v23 ContentSecurityPolicy versions issue
|
- v23 ContentSecurityPolicy versions issue
|
||||||
[#666](https://github.com/the-djmaze/snappymail/pull/666)
|
[#666](https://github.com/nextgen-networks/snappymail/pull/666)
|
||||||
|
|
||||||
|
|
||||||
## 2.21.0 – 2022-11-11
|
## 2.21.0 – 2022-11-11
|
||||||
|
|
@ -392,11 +392,11 @@
|
||||||
### Added
|
### Added
|
||||||
- Put messagelist top bar buttons also in dropdown
|
- Put messagelist top bar buttons also in dropdown
|
||||||
- Allow setting additional Sec-Fetch rules, as discussed by
|
- Allow setting additional Sec-Fetch rules, as discussed by
|
||||||
[#585](https://github.com/the-djmaze/snappymail/pull/585)
|
[#585](https://github.com/nextgen-networks/snappymail/pull/585)
|
||||||
- Light/Dark favicon.svg
|
- Light/Dark favicon.svg
|
||||||
[#643](https://github.com/the-djmaze/snappymail/pull/643)
|
[#643](https://github.com/nextgen-networks/snappymail/pull/643)
|
||||||
- Allow an account name/label
|
- Allow an account name/label
|
||||||
[#571](https://github.com/the-djmaze/snappymail/pull/571)
|
[#571](https://github.com/nextgen-networks/snappymail/pull/571)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Moved ServiceRemoteAutoLogin to plugin/extension
|
- Moved ServiceRemoteAutoLogin to plugin/extension
|
||||||
|
|
@ -407,13 +407,13 @@
|
||||||
setting SSL options per domain and verify_certificate by default
|
setting SSL options per domain and verify_certificate by default
|
||||||
- Update plugins to use new Net/Imap/Smtp/Sieve Settings object
|
- Update plugins to use new Net/Imap/Smtp/Sieve Settings object
|
||||||
- Removed message double-click to full screen
|
- Removed message double-click to full screen
|
||||||
[#638](https://github.com/the-djmaze/snappymail/pull/638)
|
[#638](https://github.com/nextgen-networks/snappymail/pull/638)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ldap-identities-plugin by @cm-schl
|
- ldap-identities-plugin by @cm-schl
|
||||||
[#647](https://github.com/the-djmaze/snappymail/pull/647)
|
[#647](https://github.com/nextgen-networks/snappymail/pull/647)
|
||||||
- OpenSSL v3 ciphers issue
|
- OpenSSL v3 ciphers issue
|
||||||
[#641](https://github.com/the-djmaze/snappymail/pull/641)
|
[#641](https://github.com/nextgen-networks/snappymail/pull/641)
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Style PopupsNextcloudFiles view
|
- Style PopupsNextcloudFiles view
|
||||||
|
|
@ -424,7 +424,7 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ?admin login failed
|
- ?admin login failed
|
||||||
[#642](https://github.com/the-djmaze/snappymail/pull/642)
|
[#642](https://github.com/nextgen-networks/snappymail/pull/642)
|
||||||
- Resolve PHP 8.2 Creation of dynamic property is deprecated
|
- Resolve PHP 8.2 Creation of dynamic property is deprecated
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -432,8 +432,8 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Improved workaround for Nextcloud Content-Security-Policy bug
|
- Improved workaround for Nextcloud Content-Security-Policy bug
|
||||||
Safari [#631](https://github.com/the-djmaze/snappymail/issues/631)
|
Safari [#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
Edge [#633](https://github.com/the-djmaze/snappymail/issues/633)
|
Edge [#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -444,8 +444,8 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Workaround Nextcloud Content-Security-Policy bug
|
- Workaround Nextcloud Content-Security-Policy bug
|
||||||
Safari [#631](https://github.com/the-djmaze/snappymail/issues/631)
|
Safari [#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
Edge [#633](https://github.com/the-djmaze/snappymail/issues/633)
|
Edge [#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -453,7 +453,7 @@
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Throw decrypt errors
|
- Throw decrypt errors
|
||||||
[#632](https://github.com/the-djmaze/snappymail/issues/632)
|
[#632](https://github.com/nextgen-networks/snappymail/issues/632)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Better multiple WYSIWYG registration system (not finished)
|
- Better multiple WYSIWYG registration system (not finished)
|
||||||
|
|
@ -461,24 +461,24 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Cookie “name” has been rejected because it is already expired.
|
- Cookie “name” has been rejected because it is already expired.
|
||||||
[#636](https://github.com/the-djmaze/snappymail/issues/636)
|
[#636](https://github.com/nextgen-networks/snappymail/issues/636)
|
||||||
- Content-Security-Policy 'strict-dynamic' was missing
|
- Content-Security-Policy 'strict-dynamic' was missing
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Better handling of Content-Security-Policy
|
- Better handling of Content-Security-Policy
|
||||||
[#631](https://github.com/the-djmaze/snappymail/issues/631)
|
[#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
[#633](https://github.com/the-djmaze/snappymail/issues/633)
|
[#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
- Nextcloud 23 Error Call to undefined method useStrictDynamic()
|
- Nextcloud 23 Error Call to undefined method useStrictDynamic()
|
||||||
[#634](https://github.com/the-djmaze/snappymail/issues/634)
|
[#634](https://github.com/nextgen-networks/snappymail/issues/634)
|
||||||
- Use snappymail icon as favicon-mask.svg instead default nextcloud logo
|
- Use snappymail icon as favicon-mask.svg instead default nextcloud logo
|
||||||
[#635](https://github.com/the-djmaze/snappymail/issues/635)
|
[#635](https://github.com/nextgen-networks/snappymail/issues/635)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.2 – 2022-11-05
|
## 2.20.2 – 2022-11-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Add more search operators (i.e. copy lots of Gmail ones)
|
- Add more search operators (i.e. copy lots of Gmail ones)
|
||||||
[#625](https://github.com/the-djmaze/snappymail/issues/625)
|
[#625](https://github.com/nextgen-networks/snappymail/issues/625)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Some CSS borders to var(--border-color)
|
- Some CSS borders to var(--border-color)
|
||||||
|
|
@ -486,11 +486,11 @@
|
||||||
### Fixed
|
### Fixed
|
||||||
- pgpDecrypt() using MailVelope the decrypt message was not green
|
- pgpDecrypt() using MailVelope the decrypt message was not green
|
||||||
- Shift + F in search bar resulted in forwarding message
|
- Shift + F in search bar resulted in forwarding message
|
||||||
[#624](https://github.com/the-djmaze/snappymail/issues/624)
|
[#624](https://github.com/nextgen-networks/snappymail/issues/624)
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- auto login mechanism not working anymore
|
- auto login mechanism not working anymore
|
||||||
[#627](https://github.com/the-djmaze/snappymail/issues/627)
|
[#627](https://github.com/nextgen-networks/snappymail/issues/627)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.1 – 2022-11-04
|
## 2.20.1 – 2022-11-04
|
||||||
|
|
@ -507,11 +507,11 @@
|
||||||
- Better theme integration with Nextcloud
|
- Better theme integration with Nextcloud
|
||||||
- Use Nextcloud 18+ IEventDispatcher
|
- Use Nextcloud 18+ IEventDispatcher
|
||||||
- Solve Nextcloud 25 CSS issues
|
- Solve Nextcloud 25 CSS issues
|
||||||
[#620](https://github.com/the-djmaze/snappymail/issues/620)
|
[#620](https://github.com/nextgen-networks/snappymail/issues/620)
|
||||||
- PutinICS does is not working for all calendar events
|
- PutinICS does is not working for all calendar events
|
||||||
[#622](https://github.com/the-djmaze/snappymail/issues/622)
|
[#622](https://github.com/nextgen-networks/snappymail/issues/622)
|
||||||
- Update readme by @cm-schl
|
- Update readme by @cm-schl
|
||||||
[#617](https://github.com/the-djmaze/snappymail/issues/617)
|
[#617](https://github.com/nextgen-networks/snappymail/issues/617)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.0 – 2022-11-03
|
## 2.20.0 – 2022-11-03
|
||||||
|
|
@ -529,7 +529,7 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Disable Nextcloud Impersonate check due to login/logout complications
|
- Disable Nextcloud Impersonate check due to login/logout complications
|
||||||
[#561](https://github.com/the-djmaze/snappymail/issues/561)
|
[#561](https://github.com/nextgen-networks/snappymail/issues/561)
|
||||||
- Improved theme integration and be compatible with Breeze Dark
|
- Improved theme integration and be compatible with Breeze Dark
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -541,17 +541,17 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Switching user (impersonate plugin) keeps old Email logged in
|
- Switching user (impersonate plugin) keeps old Email logged in
|
||||||
[#561](https://github.com/the-djmaze/snappymail/issues/561)
|
[#561](https://github.com/nextgen-networks/snappymail/issues/561)
|
||||||
- PGP Decryption / Encryption Failures
|
- PGP Decryption / Encryption Failures
|
||||||
[#600](https://github.com/the-djmaze/snappymail/issues/600)
|
[#600](https://github.com/nextgen-networks/snappymail/issues/600)
|
||||||
- Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH
|
- Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH
|
||||||
[#601](https://github.com/the-djmaze/snappymail/issues/601)
|
[#601](https://github.com/nextgen-networks/snappymail/issues/601)
|
||||||
- Cannot access admin panel
|
- Cannot access admin panel
|
||||||
[#602](https://github.com/the-djmaze/snappymail/issues/602)
|
[#602](https://github.com/nextgen-networks/snappymail/issues/602)
|
||||||
- Wont show my emails
|
- Wont show my emails
|
||||||
[#604](https://github.com/the-djmaze/snappymail/issues/604)
|
[#604](https://github.com/nextgen-networks/snappymail/issues/604)
|
||||||
- Return type of MailSo\Base\StreamFilters\LineEndings::filter
|
- Return type of MailSo\Base\StreamFilters\LineEndings::filter
|
||||||
[#610](https://github.com/the-djmaze/snappymail/issues/610)
|
[#610](https://github.com/nextgen-networks/snappymail/issues/610)
|
||||||
- Create .pgp directory was missing
|
- Create .pgp directory was missing
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
@ -562,11 +562,11 @@
|
||||||
### Added
|
### Added
|
||||||
- Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
|
- Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
|
||||||
- Filter scripts UI let user understand which filter is active
|
- Filter scripts UI let user understand which filter is active
|
||||||
[#590](https://github.com/the-djmaze/snappymail/issues/590)
|
[#590](https://github.com/nextgen-networks/snappymail/issues/590)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Method 'GetRequest' not found in \MailSo\Base\Http
|
- Method 'GetRequest' not found in \MailSo\Base\Http
|
||||||
[#585](https://github.com/the-djmaze/snappymail/issues/585)
|
[#585](https://github.com/nextgen-networks/snappymail/issues/585)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Base Domain setup enhancements
|
- Base Domain setup enhancements
|
||||||
|
|
@ -602,7 +602,7 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ldap-identities-plugin by @cm-schl
|
- ldap-identities-plugin by @cm-schl
|
||||||
[#647](https://github.com/the-djmaze/snappymail/pull/647)
|
[#647](https://github.com/nextgen-networks/snappymail/pull/647)
|
||||||
- OpenSSL v3 ciphers issue #641
|
- OpenSSL v3 ciphers issue #641
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
|
|
@ -614,7 +614,7 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ?admin login failed
|
- ?admin login failed
|
||||||
[#642](https://github.com/the-djmaze/snappymail/pull/642)
|
[#642](https://github.com/nextgen-networks/snappymail/pull/642)
|
||||||
- Resolve PHP 8.2 Creation of dynamic property is deprecated
|
- Resolve PHP 8.2 Creation of dynamic property is deprecated
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -622,8 +622,8 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Improved workaround for Nextcloud Content-Security-Policy bug
|
- Improved workaround for Nextcloud Content-Security-Policy bug
|
||||||
Safari [#631](https://github.com/the-djmaze/snappymail/issues/631)
|
Safari [#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
Edge [#633](https://github.com/the-djmaze/snappymail/issues/633)
|
Edge [#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -634,8 +634,8 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Workaround Nextcloud Content-Security-Policy bug
|
- Workaround Nextcloud Content-Security-Policy bug
|
||||||
Safari [#631](https://github.com/the-djmaze/snappymail/issues/631)
|
Safari [#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
Edge [#633](https://github.com/the-djmaze/snappymail/issues/633)
|
Edge [#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
Reported [#35013](https://github.com/nextcloud/server/issues/35013)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -643,7 +643,7 @@
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Throw decrypt errors
|
- Throw decrypt errors
|
||||||
[#632](https://github.com/the-djmaze/snappymail/issues/632)
|
[#632](https://github.com/nextgen-networks/snappymail/issues/632)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Better multiple WYSIWYG registration system (not finished)
|
- Better multiple WYSIWYG registration system (not finished)
|
||||||
|
|
@ -651,24 +651,24 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Cookie “name” has been rejected because it is already expired.
|
- Cookie “name” has been rejected because it is already expired.
|
||||||
[#636](https://github.com/the-djmaze/snappymail/issues/636)
|
[#636](https://github.com/nextgen-networks/snappymail/issues/636)
|
||||||
- Content-Security-Policy 'strict-dynamic' was missing
|
- Content-Security-Policy 'strict-dynamic' was missing
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Better handling of Content-Security-Policy
|
- Better handling of Content-Security-Policy
|
||||||
[#631](https://github.com/the-djmaze/snappymail/issues/631)
|
[#631](https://github.com/nextgen-networks/snappymail/issues/631)
|
||||||
[#633](https://github.com/the-djmaze/snappymail/issues/633)
|
[#633](https://github.com/nextgen-networks/snappymail/issues/633)
|
||||||
- Nextcloud 23 Error Call to undefined method useStrictDynamic()
|
- Nextcloud 23 Error Call to undefined method useStrictDynamic()
|
||||||
[#634](https://github.com/the-djmaze/snappymail/issues/634)
|
[#634](https://github.com/nextgen-networks/snappymail/issues/634)
|
||||||
- Use snappymail icon as favicon-mask.svg instead default nextcloud logo
|
- Use snappymail icon as favicon-mask.svg instead default nextcloud logo
|
||||||
[#635](https://github.com/the-djmaze/snappymail/issues/635)
|
[#635](https://github.com/nextgen-networks/snappymail/issues/635)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.2 – 2022-11-05
|
## 2.20.2 – 2022-11-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Add more search operators (i.e. copy lots of Gmail ones)
|
- Add more search operators (i.e. copy lots of Gmail ones)
|
||||||
[#625](https://github.com/the-djmaze/snappymail/issues/625)
|
[#625](https://github.com/nextgen-networks/snappymail/issues/625)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Some CSS borders to var(--border-color)
|
- Some CSS borders to var(--border-color)
|
||||||
|
|
@ -676,11 +676,11 @@
|
||||||
### Fixed
|
### Fixed
|
||||||
- pgpDecrypt() using MailVelope the decrypt message was not green
|
- pgpDecrypt() using MailVelope the decrypt message was not green
|
||||||
- Shift + F in search bar resulted in forwarding message
|
- Shift + F in search bar resulted in forwarding message
|
||||||
[#624](https://github.com/the-djmaze/snappymail/issues/624)
|
[#624](https://github.com/nextgen-networks/snappymail/issues/624)
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- auto login mechanism not working anymore
|
- auto login mechanism not working anymore
|
||||||
[#627](https://github.com/the-djmaze/snappymail/issues/627)
|
[#627](https://github.com/nextgen-networks/snappymail/issues/627)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.1 – 2022-11-04
|
## 2.20.1 – 2022-11-04
|
||||||
|
|
@ -697,11 +697,11 @@
|
||||||
- Better theme integration with Nextcloud
|
- Better theme integration with Nextcloud
|
||||||
- Use Nextcloud 18+ IEventDispatcher
|
- Use Nextcloud 18+ IEventDispatcher
|
||||||
- Solve Nextcloud 25 CSS issues
|
- Solve Nextcloud 25 CSS issues
|
||||||
[#620](https://github.com/the-djmaze/snappymail/issues/620)
|
[#620](https://github.com/nextgen-networks/snappymail/issues/620)
|
||||||
- PutinICS does is not working for all calendar events
|
- PutinICS does is not working for all calendar events
|
||||||
[#622](https://github.com/the-djmaze/snappymail/issues/622)
|
[#622](https://github.com/nextgen-networks/snappymail/issues/622)
|
||||||
- Update readme by @cm-schl
|
- Update readme by @cm-schl
|
||||||
[#617](https://github.com/the-djmaze/snappymail/issues/617)
|
[#617](https://github.com/nextgen-networks/snappymail/issues/617)
|
||||||
|
|
||||||
|
|
||||||
## 2.20.0 – 2022-11-03
|
## 2.20.0 – 2022-11-03
|
||||||
|
|
@ -719,7 +719,7 @@
|
||||||
|
|
||||||
### Nextcloud
|
### Nextcloud
|
||||||
- Disable Nextcloud Impersonate check due to login/logout complications
|
- Disable Nextcloud Impersonate check due to login/logout complications
|
||||||
[#561](https://github.com/the-djmaze/snappymail/issues/561)
|
[#561](https://github.com/nextgen-networks/snappymail/issues/561)
|
||||||
- Improved theme integration and be compatible with Breeze Dark
|
- Improved theme integration and be compatible with Breeze Dark
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -731,17 +731,17 @@
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Switching user (impersonate plugin) keeps old Email logged in
|
- Switching user (impersonate plugin) keeps old Email logged in
|
||||||
[#561](https://github.com/the-djmaze/snappymail/issues/561)
|
[#561](https://github.com/nextgen-networks/snappymail/issues/561)
|
||||||
- PGP Decryption / Encryption Failures
|
- PGP Decryption / Encryption Failures
|
||||||
[#600](https://github.com/the-djmaze/snappymail/issues/600)
|
[#600](https://github.com/nextgen-networks/snappymail/issues/600)
|
||||||
- Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH
|
- Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH
|
||||||
[#601](https://github.com/the-djmaze/snappymail/issues/601)
|
[#601](https://github.com/nextgen-networks/snappymail/issues/601)
|
||||||
- Cannot access admin panel
|
- Cannot access admin panel
|
||||||
[#602](https://github.com/the-djmaze/snappymail/issues/602)
|
[#602](https://github.com/nextgen-networks/snappymail/issues/602)
|
||||||
- Wont show my emails
|
- Wont show my emails
|
||||||
[#604](https://github.com/the-djmaze/snappymail/issues/604)
|
[#604](https://github.com/nextgen-networks/snappymail/issues/604)
|
||||||
- Return type of MailSo\Base\StreamFilters\LineEndings::filter
|
- Return type of MailSo\Base\StreamFilters\LineEndings::filter
|
||||||
[#610](https://github.com/the-djmaze/snappymail/issues/610)
|
[#610](https://github.com/nextgen-networks/snappymail/issues/610)
|
||||||
- Create .pgp directory was missing
|
- Create .pgp directory was missing
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
@ -752,11 +752,11 @@
|
||||||
### Added
|
### Added
|
||||||
- Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
|
- Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
|
||||||
- Filter scripts UI let user understand which filter is active
|
- Filter scripts UI let user understand which filter is active
|
||||||
[#590](https://github.com/the-djmaze/snappymail/issues/590)
|
[#590](https://github.com/nextgen-networks/snappymail/issues/590)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Method 'GetRequest' not found in \MailSo\Base\Http
|
- Method 'GetRequest' not found in \MailSo\Base\Http
|
||||||
[#585](https://github.com/the-djmaze/snappymail/issues/585)
|
[#585](https://github.com/nextgen-networks/snappymail/issues/585)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Base Domain setup enhancements
|
- Base Domain setup enhancements
|
||||||
|
|
|
||||||
|
|
@ -22,18 +22,18 @@ There, click on the link to go to the SnappyMail admin panel.
|
||||||
]]></description>
|
]]></description>
|
||||||
<namespace>SnappyMail</namespace>
|
<namespace>SnappyMail</namespace>
|
||||||
<documentation>
|
<documentation>
|
||||||
<user>https://github.com/the-djmaze/snappymail/blob/master/integrations/owncloud/snappymail/README.md</user>
|
<user>https://github.com/nextgen-networks/snappymail/blob/master/integrations/owncloud/snappymail/README.md</user>
|
||||||
<website>https://github.com/the-djmaze/snappymail/wiki</website>
|
<website>https://github.com/nextgen-networks/snappymail/wiki</website>
|
||||||
</documentation>
|
</documentation>
|
||||||
<category>integration</category>
|
<category>integration</category>
|
||||||
<category>office</category>
|
<category>office</category>
|
||||||
<category>search</category>
|
<category>search</category>
|
||||||
<category>social</category>
|
<category>social</category>
|
||||||
<screenshot>https://raw.githubusercontent.com/the-djmaze/snappymail/master/integrations/owncloud/screenshots/inbox.jpg</screenshot>
|
<screenshot>https://raw.githubusercontent.com/nextgen-networks/snappymail/master/integrations/owncloud/screenshots/inbox.jpg</screenshot>
|
||||||
<website>https://snappymail.eu</website>
|
<website>https://snappymail.eu</website>
|
||||||
<discussion>https://github.com/the-djmaze/snappymail/discussions</discussion>
|
<discussion>https://github.com/nextgen-networks/snappymail/discussions</discussion>
|
||||||
<repository>https://github.com/the-djmaze/snappymail/tree/master/integrations/owncloud</repository>
|
<repository>https://github.com/nextgen-networks/snappymail/tree/master/integrations/owncloud</repository>
|
||||||
<bugs>https://github.com/the-djmaze/snappymail/issues</bugs>
|
<bugs>https://github.com/nextgen-networks/snappymail/issues</bugs>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<php min-version="7.4" min-int-size="64" />
|
<php min-version="7.4" min-int-size="64" />
|
||||||
<lib>mbstring</lib>
|
<lib>mbstring</lib>
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ body > header ul {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Firefox < 98
|
* Firefox < 98
|
||||||
* https://github.com/the-djmaze/snappymail/issues/673
|
* https://github.com/nextgen-networks/snappymail/issues/673
|
||||||
*/
|
*/
|
||||||
#rl-app dialog.polyfill {
|
#rl-app dialog.polyfill {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
|
|
@ -89,7 +89,7 @@ body > header ul {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hampoelz
|
* hampoelz
|
||||||
* https://github.com/the-djmaze/snappymail/issues/96#issuecomment-1279783076
|
* https://github.com/nextgen-networks/snappymail/issues/96#issuecomment-1279783076
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.messageList {
|
.messageList {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class SnappyMailHelper
|
||||||
$app_dir = \dirname(\dirname(__DIR__)) . '/app';
|
$app_dir = \dirname(\dirname(__DIR__)) . '/app';
|
||||||
require_once $app_dir . '/index.php';
|
require_once $app_dir . '/index.php';
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/790#issuecomment-1366527884
|
// https://github.com/nextgen-networks/snappymail/issues/790#issuecomment-1366527884
|
||||||
if (!file_exists($app_dir . '/.htaccess') && file_exists($app_dir . '/_htaccess')) {
|
if (!file_exists($app_dir . '/.htaccess') && file_exists($app_dir . '/_htaccess')) {
|
||||||
rename($app_dir . '/_htaccess', $app_dir . '/.htaccess');
|
rename($app_dir . '/_htaccess', $app_dir . '/.htaccess');
|
||||||
if (!file_exists(APP_VERSION_ROOT_PATH . '/app/.htaccess') && file_exists(APP_VERSION_ROOT_PATH . '/app/_htaccess')) {
|
if (!file_exists(APP_VERSION_ROOT_PATH . '/app/.htaccess') && file_exists(APP_VERSION_ROOT_PATH . '/app/_htaccess')) {
|
||||||
|
|
@ -122,7 +122,7 @@ class SnappyMailHelper
|
||||||
$aCredentials = static::getLoginCredentials();
|
$aCredentials = static::getLoginCredentials();
|
||||||
/*
|
/*
|
||||||
// NC25+ workaround for Impersonate plugin
|
// NC25+ workaround for Impersonate plugin
|
||||||
// https://github.com/the-djmaze/snappymail/issues/561#issuecomment-1301317723
|
// https://github.com/nextgen-networks/snappymail/issues/561#issuecomment-1301317723
|
||||||
// https://github.com/nextcloud/server/issues/34935#issuecomment-1302145157
|
// https://github.com/nextcloud/server/issues/34935#issuecomment-1302145157
|
||||||
require \OC::$SERVERROOT . '/version.php';
|
require \OC::$SERVERROOT . '/version.php';
|
||||||
// \OC\SystemConfig
|
// \OC\SystemConfig
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ sub script_snappymail_files
|
||||||
local ($d, $ver, $opts, $upgrade) = @_;
|
local ($d, $ver, $opts, $upgrade) = @_;
|
||||||
local @files = ( { 'name' => "source",
|
local @files = ( { 'name' => "source",
|
||||||
'file' => "snappymail-$ver.tar.gz",
|
'file' => "snappymail-$ver.tar.gz",
|
||||||
'url' => "https://github.com/the-djmaze/snappymail/releases/download/v${ver}/snappymail-${ver}.tar.gz" },
|
'url' => "https://github.com/nextgen-networks/snappymail/releases/download/v${ver}/snappymail-${ver}.tar.gz" },
|
||||||
);
|
);
|
||||||
return @files;
|
return @files;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git://github.com/the-djmaze/snappymail.git"
|
"url": "git://github.com/nextgen-networks/snappymail.git"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"watch-css": "gulp watchCss"
|
"watch-css": "gulp watchCss"
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/the-djmaze/snappymail/issues"
|
"url": "https://github.com/nextgen-networks/snappymail/issues"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"webmail",
|
"webmail",
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class AttachmentsForceOpenPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
const
|
const
|
||||||
NAME = 'Attachments force open',
|
NAME = 'Attachments force open',
|
||||||
AUTHOR = 'SnappyMail',
|
AUTHOR = 'SnappyMail',
|
||||||
URL = 'https://github.com/the-djmaze/snappymail/pull/1489',
|
URL = 'https://github.com/nextgen-networks/snappymail/pull/1489',
|
||||||
VERSION = '0.1',
|
VERSION = '0.1',
|
||||||
RELEASE = '2024-03-15',
|
RELEASE = '2024-03-15',
|
||||||
REQUIRED = '2.14.0',
|
REQUIRED = '2.14.0',
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
* be set to to 'example.com'.
|
* be set to to 'example.com'.
|
||||||
*
|
*
|
||||||
* Based on:
|
* Based on:
|
||||||
* https://github.com/the-djmaze/snappymail/blob/master/plugins/override-smtp-credentials/index.php
|
* https://github.com/nextgen-networks/snappymail/blob/master/plugins/override-smtp-credentials/index.php
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
if ($identicon && \is_file(__DIR__ . "/{$identicon}.js")) {
|
if ($identicon && \is_file(__DIR__ . "/{$identicon}.js")) {
|
||||||
$this->addJs("{$identicon}.js");
|
$this->addJs("{$identicon}.js");
|
||||||
}
|
}
|
||||||
// https://github.com/the-djmaze/snappymail/issues/714
|
// https://github.com/nextgen-networks/snappymail/issues/714
|
||||||
if ($this->Config()->Get('plugin', 'service', true)
|
if ($this->Config()->Get('plugin', 'service', true)
|
||||||
// || !$this->Config()->Get('plugin', 'delay', true)
|
// || !$this->Config()->Get('plugin', 'delay', true)
|
||||||
|| $this->Config()->Get('plugin', 'gravatar', false)
|
|| $this->Config()->Get('plugin', 'gravatar', false)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class CompactComposerPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
const
|
const
|
||||||
NAME = 'Compact Composer',
|
NAME = 'Compact Composer',
|
||||||
AUTHOR = 'Sergey Mosin',
|
AUTHOR = 'Sergey Mosin',
|
||||||
URL = 'https://github.com/the-djmaze/snappymail/pull/1466',
|
URL = 'https://github.com/nextgen-networks/snappymail/pull/1466',
|
||||||
VERSION = '1.0.6',
|
VERSION = '1.0.6',
|
||||||
RELEASE = '2024-08-08',
|
RELEASE = '2024-08-08',
|
||||||
REQUIRED = '2.34.0',
|
REQUIRED = '2.34.0',
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@
|
||||||
|
|
||||||
const clr = this.makeClr();
|
const clr = this.makeClr();
|
||||||
const doClr = name => input => {
|
const doClr = name => input => {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/826
|
// https://github.com/nextgen-networks/snappymail/issues/826
|
||||||
clr.style.left = (input.offsetLeft + input.parentNode.offsetLeft) + 'px';
|
clr.style.left = (input.offsetLeft + input.parentNode.offsetLeft) + 'px';
|
||||||
clr.style.width = input.offsetWidth + 'px';
|
clr.style.width = input.offsetWidth + 'px';
|
||||||
|
|
||||||
|
|
@ -324,7 +324,7 @@
|
||||||
console.error('invalid name:', name);
|
console.error('invalid name:', name);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// Chrome 110+ https://github.com/the-djmaze/snappymail/issues/1199
|
// Chrome 110+ https://github.com/nextgen-networks/snappymail/issues/1199
|
||||||
// clr.oninput = () => squire.setStyle({[name]:clr.value});
|
// clr.oninput = () => squire.setStyle({[name]:clr.value});
|
||||||
setTimeout(() => clr.click(), 1);
|
setTimeout(() => clr.click(), 1);
|
||||||
};
|
};
|
||||||
|
|
@ -653,7 +653,7 @@
|
||||||
/**@type {HTMLInputElement} clr*/
|
/**@type {HTMLInputElement} clr*/
|
||||||
const clr = createElement('input');
|
const clr = createElement('input');
|
||||||
clr.type = 'color';
|
clr.type = 'color';
|
||||||
// Chrome https://github.com/the-djmaze/snappymail/issues/1199
|
// Chrome https://github.com/nextgen-networks/snappymail/issues/1199
|
||||||
let clrid = 'squire-colors',
|
let clrid = 'squire-colors',
|
||||||
colorlist = doc.getElementById(clrid),
|
colorlist = doc.getElementById(clrid),
|
||||||
add = hex => colorlist.append(new Option(hex));
|
add = hex => colorlist.append(new Option(hex));
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ class DemoAccountPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
$aActionParams['Password'] = $this->Config()->Get('plugin', 'password');
|
$aActionParams['Password'] = $this->Config()->Get('plugin', 'password');
|
||||||
}
|
}
|
||||||
else if ('DoFolderCreate' === $sMethodName || 'DoFolderRename' === $sMethodName) {
|
else if ('DoFolderCreate' === $sMethodName || 'DoFolderRename' === $sMethodName) {
|
||||||
// Block spam https://github.com/the-djmaze/snappymail/issues/371
|
// Block spam https://github.com/nextgen-networks/snappymail/issues/371
|
||||||
$latin = transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', $aActionParams['folder']);
|
$latin = transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', $aActionParams['folder']);
|
||||||
if (false !== \strpos($latin, 'nigger')) {
|
if (false !== \strpos($latin, 'nigger')) {
|
||||||
\error_log("blocked {$sMethodName} {$aActionParams['folder']}");
|
\error_log("blocked {$sMethodName} {$aActionParams['folder']}");
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ class LdapMailAccounts
|
||||||
return false; // exceptions are only thrown from the handle error function that does logging already
|
return false; // exceptions are only thrown from the handle error function that does logging already
|
||||||
}
|
}
|
||||||
|
|
||||||
//Basing on https://github.com/the-djmaze/snappymail/issues/616
|
//Basing on https://github.com/nextgen-networks/snappymail/issues/616
|
||||||
|
|
||||||
$oActions = \RainLoop\Api::Actions();
|
$oActions = \RainLoop\Api::Actions();
|
||||||
|
|
||||||
|
|
@ -192,7 +192,7 @@ class LdapMailAccounts
|
||||||
//When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
//When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
||||||
//On a password change using ldap (or when the password has been forgotten by the user) this makes us some problems. Therefore overwrite
|
//On a password change using ldap (or when the password has been forgotten by the user) this makes us some problems. Therefore overwrite
|
||||||
//the .cryptkey file in order to always accept the actual ldap password of the user. This has side effects on pgp keys!
|
//the .cryptkey file in order to always accept the actual ldap password of the user. This has side effects on pgp keys!
|
||||||
//See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061
|
//See https://github.com/nextgen-networks/snappymail/issues/1570#issuecomment-2085528061
|
||||||
if ($this->config->bool_overwrite_cryptkey) {
|
if ($this->config->bool_overwrite_cryptkey) {
|
||||||
if (!$oActions->StorageProvider()->Put($oAccount, StorageType::ROOT, '.cryptkey', "")) {
|
if (!$oActions->StorageProvider()->Put($oAccount, StorageType::ROOT, '.cryptkey', "")) {
|
||||||
$this->logger->Write("Could not overwrite the .cryptkey file!", \LOG_WARNING, self::LOG_KEY);
|
$this->logger->Write("Could not overwrite the .cryptkey file!", \LOG_WARNING, self::LOG_KEY);
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
||||||
->SetDescription("SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file \".cryptkey\". When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
->SetDescription("SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file \".cryptkey\". When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
||||||
\nOn a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user.
|
\nOn a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user.
|
||||||
\nATTENTION: This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore!
|
\nATTENTION: This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore!
|
||||||
\nSee https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061")
|
\nSee https://github.com/nextgen-networks/snappymail/issues/1570#issuecomment-2085528061")
|
||||||
->SetDefaultValue(false),
|
->SetDefaultValue(false),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class LogincPanelPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
|
|
||||||
public function FilterLoginCredentials(&$sEmail, &$sImapUser, &$sPassword, &$sSmtpUser)
|
public function FilterLoginCredentials(&$sEmail, &$sImapUser, &$sPassword, &$sSmtpUser)
|
||||||
{
|
{
|
||||||
// cPanel https://github.com/the-djmaze/snappymail/issues/697
|
// cPanel https://github.com/nextgen-networks/snappymail/issues/697
|
||||||
// && !empty($_ENV['CPANEL'])
|
// && !empty($_ENV['CPANEL'])
|
||||||
if (static::$login/* && $sImapUser == $_ENV['REMOTE_USER']*/) {
|
if (static::$login/* && $sImapUser == $_ENV['REMOTE_USER']*/) {
|
||||||
if (empty($_ENV['REMOTE_TEMP_USER'])) {
|
if (empty($_ENV['REMOTE_TEMP_USER'])) {
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ class LoginGMailPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
->SetLabel('Client ID')
|
->SetLabel('Client ID')
|
||||||
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
||||||
->SetAllowedInJs()
|
->SetAllowedInJs()
|
||||||
->SetDescription('https://github.com/the-djmaze/snappymail/wiki/FAQ#gmail'),
|
->SetDescription('https://github.com/nextgen-networks/snappymail/wiki/FAQ#gmail'),
|
||||||
\RainLoop\Plugins\Property::NewInstance('client_secret')
|
\RainLoop\Plugins\Property::NewInstance('client_secret')
|
||||||
->SetLabel('Client Secret')
|
->SetLabel('Client Secret')
|
||||||
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ class LoginO365Plugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
->SetLabel('Client ID')
|
->SetLabel('Client ID')
|
||||||
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
||||||
->SetAllowedInJs()
|
->SetAllowedInJs()
|
||||||
->SetDescription('https://github.com/the-djmaze/snappymail/wiki/FAQ#o365'),
|
->SetDescription('https://github.com/nextgen-networks/snappymail/wiki/FAQ#o365'),
|
||||||
\RainLoop\Plugins\Property::NewInstance('client_secret')
|
\RainLoop\Plugins\Property::NewInstance('client_secret')
|
||||||
->SetLabel('Client Secret')
|
->SetLabel('Client Secret')
|
||||||
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING)
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class LoginRemotePlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
|
|
||||||
public function FilterLoginCredentials(string &$sEmail, string &$sImapUser, string &$sPassword, string &$sSmtpUser)
|
public function FilterLoginCredentials(string &$sEmail, string &$sImapUser, string &$sPassword, string &$sSmtpUser)
|
||||||
{
|
{
|
||||||
// cPanel https://github.com/the-djmaze/snappymail/issues/697
|
// cPanel https://github.com/nextgen-networks/snappymail/issues/697
|
||||||
// && !empty($_ENV['CPANEL'])
|
// && !empty($_ENV['CPANEL'])
|
||||||
if (static::$login/* && $sImapUser == $_ENV['REMOTE_USER']*/) {
|
if (static::$login/* && $sImapUser == $_ENV['REMOTE_USER']*/) {
|
||||||
if (empty($_ENV['REMOTE_TEMP_USER'])) {
|
if (empty($_ENV['REMOTE_TEMP_USER'])) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class LoginVirtuserPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
const
|
const
|
||||||
NAME = 'Virtuser Login',
|
NAME = 'Virtuser Login',
|
||||||
AUTHOR = 'v20z',
|
AUTHOR = 'v20z',
|
||||||
URL = 'https://github.com/the-djmaze/snappymail/issues/1691',
|
URL = 'https://github.com/nextgen-networks/snappymail/issues/1691',
|
||||||
VERSION = '0.2',
|
VERSION = '0.2',
|
||||||
RELEASE = '2024-09-20',
|
RELEASE = '2024-09-20',
|
||||||
REQUIRED = '2.36.1',
|
REQUIRED = '2.36.1',
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
});
|
});
|
||||||
if (urls.length) {
|
if (urls.length) {
|
||||||
// TODO: other editors and text/plain
|
// TODO: other editors and text/plain
|
||||||
// https://github.com/the-djmaze/snappymail/issues/981
|
// https://github.com/nextgen-networks/snappymail/issues/981
|
||||||
view.oEditor.editor.squire.insertHTML(urls.join("<br>"));
|
view.oEditor.editor.squire.insertHTML(urls.join("<br>"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// https://github.com/the-djmaze/snappymail/issues/592
|
// https://github.com/nextgen-networks/snappymail/issues/592
|
||||||
if (cfg.CalDAV) {
|
if (cfg.CalDAV) {
|
||||||
const attachmentsPlace = template.content.querySelector('.attachmentsPlace');
|
const attachmentsPlace = template.content.querySelector('.attachmentsPlace');
|
||||||
attachmentsPlace.after(Element.fromHTML(`
|
attachmentsPlace.after(Element.fromHTML(`
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ const
|
||||||
}
|
}
|
||||||
elemList.push(elem);
|
elemList.push(elem);
|
||||||
}
|
}
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1177
|
// https://github.com/nextgen-networks/snappymail/issues/1177
|
||||||
// elemList.sort((a, b) => a.isFile != b.isFile ? (a.isFile ? 1 : -1) : a.name.localeCompare(b.name));
|
// elemList.sort((a, b) => a.isFile != b.isFile ? (a.isFile ? 1 : -1) : a.name.localeCompare(b.name));
|
||||||
return Promise.resolve(elemList);
|
return Promise.resolve(elemList);
|
||||||
});
|
});
|
||||||
|
|
@ -122,7 +122,7 @@ const
|
||||||
buildTree = (view, parent, items, path) => {
|
buildTree = (view, parent, items, path) => {
|
||||||
if (items.length) {
|
if (items.length) {
|
||||||
try {
|
try {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1109
|
// https://github.com/nextgen-networks/snappymail/issues/1109
|
||||||
let collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
|
let collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
|
||||||
items.sort((a, b) => collator.compare(a.name, b.name));
|
items.sort((a, b) => collator.compare(a.name, b.name));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class SearchFiltersPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
public const
|
public const
|
||||||
NAME = 'Search Filters',
|
NAME = 'Search Filters',
|
||||||
AUTHOR = 'AbdoBnHesham',
|
AUTHOR = 'AbdoBnHesham',
|
||||||
URL = 'https://github.com/the-djmaze/snappymail/pull/1673',
|
URL = 'https://github.com/nextgen-networks/snappymail/pull/1673',
|
||||||
VERSION = '0.2',
|
VERSION = '0.2',
|
||||||
RELEASE = '2024-06-28',
|
RELEASE = '2024-06-28',
|
||||||
REQUIRED = '2.36.3',
|
REQUIRED = '2.36.3',
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/349
|
// https://github.com/nextgen-networks/snappymail/issues/349
|
||||||
addEventListener('sm-show-screen', e => {
|
addEventListener('sm-show-screen', e => {
|
||||||
if (!e.detail.startsWith('settings') && rl.settings.get('SetupTwoFactor')) {
|
if (!e.detail.startsWith('settings') && rl.settings.get('SetupTwoFactor')) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ abstract class DateTimeHelper
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Strip invalid data after zone, https://github.com/the-djmaze/snappymail/issues/1554
|
// Strip invalid data after zone, https://github.com/nextgen-networks/snappymail/issues/1554
|
||||||
$sDateTime = \preg_replace('/\s+\([a-zA-Z0-9]+\)$/', '', $sDateTime);
|
$sDateTime = \preg_replace('/\s+\([a-zA-Z0-9]+\)$/', '', $sDateTime);
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1694#issuecomment-2270983942
|
// https://github.com/nextgen-networks/snappymail/issues/1694#issuecomment-2270983942
|
||||||
// Strip day-of-week
|
// Strip day-of-week
|
||||||
$sDateTime = \preg_replace('/^[^,]+,/', '', $sDateTime);
|
$sDateTime = \preg_replace('/^[^,]+,/', '', $sDateTime);
|
||||||
// Add optional seconds
|
// Add optional seconds
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ class BodyStructure implements \JsonSerializable
|
||||||
/**
|
/**
|
||||||
* Still no text found?
|
* Still no text found?
|
||||||
* Look in attachments as it could be an X-Mms-Message
|
* Look in attachments as it could be an X-Mms-Message
|
||||||
* https://github.com/the-djmaze/snappymail/issues/1294
|
* https://github.com/nextgen-networks/snappymail/issues/1294
|
||||||
*/
|
*/
|
||||||
if (!$aParts) {
|
if (!$aParts) {
|
||||||
$gParts = $this->SearchByCallback(fn($oItem) => $oItem->isText());
|
$gParts = $this->SearchByCallback(fn($oItem) => $oItem->isText());
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ trait Folders
|
||||||
// $this->FolderCheck();
|
// $this->FolderCheck();
|
||||||
|
|
||||||
// Will this workaround solve Dovecot issue?
|
// Will this workaround solve Dovecot issue?
|
||||||
// https://github.com/the-djmaze/snappymail/issues/124
|
// https://github.com/nextgen-networks/snappymail/issues/124
|
||||||
try {
|
try {
|
||||||
$this->FolderRename($sFolderName, "{$sFolderName}-dummy");
|
$this->FolderRename($sFolderName, "{$sFolderName}-dummy");
|
||||||
$this->FolderRename("{$sFolderName}-dummy", $sFolderName);
|
$this->FolderRename("{$sFolderName}-dummy", $sFolderName);
|
||||||
|
|
|
||||||
|
|
@ -315,7 +315,7 @@ class SearchCriterias
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/625
|
// https://github.com/nextgen-networks/snappymail/issues/625
|
||||||
case 'READ':
|
case 'READ':
|
||||||
case 'UNREAD':
|
case 'UNREAD':
|
||||||
$aCriteriasResult[] = \str_replace('READ', 'SEEN', $sName);
|
$aCriteriasResult[] = \str_replace('READ', 'SEEN', $sName);
|
||||||
|
|
@ -369,7 +369,7 @@ class SearchCriterias
|
||||||
|
|
||||||
public static function escapeSearchString(\MailSo\Imap\ImapClient $oImapClient, string $sSearch) : string
|
public static function escapeSearchString(\MailSo\Imap\ImapClient $oImapClient, string $sSearch) : string
|
||||||
{
|
{
|
||||||
// https://github.com/the-djmaze/snappymail/issues/836
|
// https://github.com/nextgen-networks/snappymail/issues/836
|
||||||
// return $oImapClient->EscapeString($sSearch);
|
// return $oImapClient->EscapeString($sSearch);
|
||||||
// return \MailSo\Base\Utils::IsAscii($sSearch) || $oImapClient->hasCapability('QQMail'))
|
// return \MailSo\Base\Utils::IsAscii($sSearch) || $oImapClient->hasCapability('QQMail'))
|
||||||
return (\MailSo\Base\Utils::IsAscii($sSearch) || !$oImapClient->hasCapability('LITERAL+'))
|
return (\MailSo\Base\Utils::IsAscii($sSearch) || !$oImapClient->hasCapability('LITERAL+'))
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,8 @@ trait ResponseParser
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A bug in the parser converts folder names that start with '[' into arrays.
|
* A bug in the parser converts folder names that start with '[' into arrays.
|
||||||
* https://github.com/the-djmaze/snappymail/issues/1
|
* https://github.com/nextgen-networks/snappymail/issues/1
|
||||||
* https://github.com/the-djmaze/snappymail/issues/70
|
* https://github.com/nextgen-networks/snappymail/issues/70
|
||||||
* The fix RainLoop implemented isn't correct either.
|
* The fix RainLoop implemented isn't correct either.
|
||||||
* This one should as RFC 3501 only mentions:
|
* This one should as RFC 3501 only mentions:
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ trait Status
|
||||||
if (\is_string($value)) {
|
if (\is_string($value)) {
|
||||||
$this->MAILBOXID = \base64_encode($value);
|
$this->MAILBOXID = \base64_encode($value);
|
||||||
} else {
|
} else {
|
||||||
// Cyrus bug https://github.com/the-djmaze/snappymail/issues/1640
|
// Cyrus bug https://github.com/nextgen-networks/snappymail/issues/1640
|
||||||
\error_log("{$this->FullName} invalid MAILBOXID value. Disable the OBJECTID capability.");
|
\error_log("{$this->FullName} invalid MAILBOXID value. Disable the OBJECTID capability.");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -172,7 +172,7 @@ trait Status
|
||||||
$oResponse->ResponseList[3][$i+1]
|
$oResponse->ResponseList[3][$i+1]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1640
|
// https://github.com/nextgen-networks/snappymail/issues/1640
|
||||||
\error_log("{$this->FullName} STATUS missing value for {$oResponse->ResponseList[3][$i]}");
|
\error_log("{$this->FullName} STATUS missing value for {$oResponse->ResponseList[3][$i]}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -249,7 +249,7 @@ class Message implements \JsonSerializable
|
||||||
$oMessage->sSpamResult = "{$value[1]} / {$required[1]}";
|
$oMessage->sSpamResult = "{$value[1]} / {$required[1]}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1228
|
// https://github.com/nextgen-networks/snappymail/issues/1228
|
||||||
else if (\preg_match('@([\\d\\.]+)/([\\d\\.]+)@', $spam, $value)
|
else if (\preg_match('@([\\d\\.]+)/([\\d\\.]+)@', $spam, $value)
|
||||||
|| \preg_match('@([\\d\\.]+)/([\\d\\.]+)@', $oHeaders->ValueByName(MimeHeader::X_SPAM_INFO), $value)
|
|| \preg_match('@([\\d\\.]+)/([\\d\\.]+)@', $oHeaders->ValueByName(MimeHeader::X_SPAM_INFO), $value)
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class ConnectSettings implements \JsonSerializable
|
||||||
public bool $lowerLogin = true;
|
public bool $lowerLogin = true;
|
||||||
public string $stripLogin = '';
|
public string $stripLogin = '';
|
||||||
public array $SASLMechanisms = [
|
public array $SASLMechanisms = [
|
||||||
// https://github.com/the-djmaze/snappymail/issues/182
|
// https://github.com/nextgen-networks/snappymail/issues/182
|
||||||
'SCRAM-SHA3-512',
|
'SCRAM-SHA3-512',
|
||||||
'SCRAM-SHA-512',
|
'SCRAM-SHA-512',
|
||||||
'SCRAM-SHA-256',
|
'SCRAM-SHA-256',
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ class SieveClient extends \MailSo\Net\NetClient
|
||||||
try {
|
try {
|
||||||
$this->sendRequestWithCheck('LOGOUT');
|
$this->sendRequestWithCheck('LOGOUT');
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1455
|
// https://github.com/nextgen-networks/snappymail/issues/1455
|
||||||
$this->writeLogException($e, \LOG_WARNING, false);
|
$this->writeLogException($e, \LOG_WARNING, false);
|
||||||
}
|
}
|
||||||
$this->bIsLoggined = false;
|
$this->bIsLoggined = false;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class Settings extends \MailSo\Net\ConnectSettings
|
||||||
public bool
|
public bool
|
||||||
$setSender = false,
|
$setSender = false,
|
||||||
$usePhpMail = false,
|
$usePhpMail = false,
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1038
|
// https://github.com/nextgen-networks/snappymail/issues/1038
|
||||||
$authPlainLine = false,
|
$authPlainLine = false,
|
||||||
$viewErrors = false;
|
$viewErrors = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@ class SmtpClient extends \MailSo\Net\NetClient
|
||||||
$SASL = \SnappyMail\SASL::factory($type);
|
$SASL = \SnappyMail\SASL::factory($type);
|
||||||
|
|
||||||
if ($this->Settings->authPlainLine && $SASL instanceof \SnappyMail\SASL\Plain) {
|
if ($this->Settings->authPlainLine && $SASL instanceof \SnappyMail\SASL\Plain) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1038
|
// https://github.com/nextgen-networks/snappymail/issues/1038
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$sRequest = $SASL->authenticate($sLogin, $sPassword);
|
$sRequest = $SASL->authenticate($sLogin, $sPassword);
|
||||||
|
|
|
||||||
|
|
@ -337,7 +337,7 @@ trait Accounts
|
||||||
*/
|
*/
|
||||||
public function DoAccountsAndIdentities(): array
|
public function DoAccountsAndIdentities(): array
|
||||||
{
|
{
|
||||||
// https://github.com/the-djmaze/snappymail/issues/571
|
// https://github.com/nextgen-networks/snappymail/issues/571
|
||||||
return $this->DefaultResponse(array(
|
return $this->DefaultResponse(array(
|
||||||
'Accounts' => \array_values(\array_map(function($value){
|
'Accounts' => \array_values(\array_map(function($value){
|
||||||
return [
|
return [
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ trait Folders
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1438
|
// https://github.com/nextgen-networks/snappymail/issues/1438
|
||||||
// $oAccount->Domain()->ImapSettings()->disabled_capabilities[] = 'NAMESPACE';
|
// $oAccount->Domain()->ImapSettings()->disabled_capabilities[] = 'NAMESPACE';
|
||||||
// $this->DomainProvider()->Save($oAccount->Domain());
|
// $this->DomainProvider()->Save($oAccount->Domain());
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,7 @@ trait Folders
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1438
|
// https://github.com/nextgen-networks/snappymail/issues/1438
|
||||||
// $oAccount->Domain()->ImapSettings()->disabled_capabilities[] = 'NAMESPACE';
|
// $oAccount->Domain()->ImapSettings()->disabled_capabilities[] = 'NAMESPACE';
|
||||||
// $this->DomainProvider()->Save($oAccount->Domain());
|
// $this->DomainProvider()->Save($oAccount->Domain());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1151,7 +1151,7 @@ trait Messages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// OpenPGP https://github.com/the-djmaze/snappymail/issues/1587
|
// OpenPGP https://github.com/nextgen-networks/snappymail/issues/1587
|
||||||
$sPublicKey = $this->GetActionParam('publicKey', '');
|
$sPublicKey = $this->GetActionParam('publicKey', '');
|
||||||
if ($sPublicKey) {
|
if ($sPublicKey) {
|
||||||
$oMessage->Attachments()->append(
|
$oMessage->Attachments()->append(
|
||||||
|
|
@ -1199,7 +1199,7 @@ trait Messages
|
||||||
if ($sFingerprint) {
|
if ($sFingerprint) {
|
||||||
$GPG = $this->GnuPG();
|
$GPG = $this->GnuPG();
|
||||||
/*
|
/*
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1587
|
// https://github.com/nextgen-networks/snappymail/issues/1587
|
||||||
if ($this->GetActionParam('attachPublicKey', false)) {
|
if ($this->GetActionParam('attachPublicKey', false)) {
|
||||||
$sPublicKey = $GPG->export($sFingerprint);
|
$sPublicKey = $GPG->export($sFingerprint);
|
||||||
$oMessage->Attachments()->append(
|
$oMessage->Attachments()->append(
|
||||||
|
|
@ -1269,7 +1269,7 @@ trait Messages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1587
|
// https://github.com/nextgen-networks/snappymail/issues/1587
|
||||||
if ($sCertificate && $this->GetActionParam('attachCertificate', false)) {
|
if ($sCertificate && $this->GetActionParam('attachCertificate', false)) {
|
||||||
$oMessage->Attachments()->append(
|
$oMessage->Attachments()->append(
|
||||||
new \MailSo\Mime\Attachment(
|
new \MailSo\Mime\Attachment(
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ trait Raw
|
||||||
if (!\is_resource($rResource)) {
|
if (!\is_resource($rResource)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// https://github.com/the-djmaze/snappymail/issues/144
|
// https://github.com/nextgen-networks/snappymail/issues/144
|
||||||
if ('.pdf' === \substr($sFileNameIn,-4)) {
|
if ('.pdf' === \substr($sFileNameIn,-4)) {
|
||||||
$sContentTypeOut = 'application/pdf'; // application/octet-stream
|
$sContentTypeOut = 'application/pdf'; // application/octet-stream
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -174,7 +174,7 @@ trait Raw
|
||||||
$sFileName = $self->clearFileName($sFileName, $sContentType, $sMimeIndex);
|
$sFileName = $self->clearFileName($sFileName, $sContentType, $sMimeIndex);
|
||||||
|
|
||||||
if ('.pdf' === \substr($sFileName, -4)) {
|
if ('.pdf' === \substr($sFileName, -4)) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/144
|
// https://github.com/nextgen-networks/snappymail/issues/144
|
||||||
$sContentType = 'application/pdf';
|
$sContentType = 'application/pdf';
|
||||||
} else {
|
} else {
|
||||||
$sContentType = $sContentTypeIn
|
$sContentType = $sContentTypeIn
|
||||||
|
|
|
||||||
|
|
@ -259,7 +259,7 @@ trait UserAuth
|
||||||
if ($aData) {
|
if ($aData) {
|
||||||
/**
|
/**
|
||||||
* Server side control/kickout of logged in sessions
|
* Server side control/kickout of logged in sessions
|
||||||
* https://github.com/the-djmaze/snappymail/issues/151
|
* https://github.com/nextgen-networks/snappymail/issues/151
|
||||||
*/
|
*/
|
||||||
$sToken = Utils::GetSessionToken(false);
|
$sToken = Utils::GetSessionToken(false);
|
||||||
if (!$sToken) {
|
if (!$sToken) {
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ abstract class Base
|
||||||
if ($oSettings->sslCa) {
|
if ($oSettings->sslCa) {
|
||||||
$options[\PDO::MYSQL_ATTR_SSL_CA] = $oSettings->sslCa;
|
$options[\PDO::MYSQL_ATTR_SSL_CA] = $oSettings->sslCa;
|
||||||
}
|
}
|
||||||
// PHP 8.0 https://github.com/the-djmaze/snappymail/issues/1205
|
// PHP 8.0 https://github.com/nextgen-networks/snappymail/issues/1205
|
||||||
if (\defined('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT')) {
|
if (\defined('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT')) {
|
||||||
$options[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $oSettings->sslVerify;
|
$options[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $oSettings->sslVerify;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ abstract class Service
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bIndex) {
|
if ($bIndex) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1024
|
// https://github.com/nextgen-networks/snappymail/issues/1024
|
||||||
$oHttp->ServerNoCache();
|
$oHttp->ServerNoCache();
|
||||||
|
|
||||||
if (!$bAdmin) {
|
if (!$bAdmin) {
|
||||||
|
|
@ -195,7 +195,7 @@ abstract class Service
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
|
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1024
|
// https://github.com/nextgen-networks/snappymail/issues/1024
|
||||||
// $oActions->verifyCacheByKey($sCacheFileName);
|
// $oActions->verifyCacheByKey($sCacheFileName);
|
||||||
|
|
||||||
if ($oConfig->Get('cache', 'system_data', true)) {
|
if ($oConfig->Get('cache', 'system_data', true)) {
|
||||||
|
|
@ -237,7 +237,7 @@ abstract class Service
|
||||||
$sScriptHash = 'sha256-'.\base64_encode(\hash('sha256', $script[1], true));
|
$sScriptHash = 'sha256-'.\base64_encode(\hash('sha256', $script[1], true));
|
||||||
static::setCSP(null, $sScriptHash);
|
static::setCSP(null, $sScriptHash);
|
||||||
*/
|
*/
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1024
|
// https://github.com/nextgen-networks/snappymail/issues/1024
|
||||||
// $oActions->cacheByKey($sCacheFileName);
|
// $oActions->cacheByKey($sCacheFileName);
|
||||||
|
|
||||||
echo $sResult;
|
echo $sResult;
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ class Utils
|
||||||
return self::WebPath() . 'snappymail/v/' . APP_VERSION . '/';
|
return self::WebPath() . 'snappymail/v/' . APP_VERSION . '/';
|
||||||
/**
|
/**
|
||||||
* TODO: solve this to support other paths.
|
* TODO: solve this to support other paths.
|
||||||
* https://github.com/the-djmaze/snappymail/issues/685
|
* https://github.com/nextgen-networks/snappymail/issues/685
|
||||||
*/
|
*/
|
||||||
// return self::WebPath() . \str_replace(APP_INDEX_ROOT_PATH, '', APP_VERSION_ROOT_PATH);
|
// return self::WebPath() . \str_replace(APP_INDEX_ROOT_PATH, '', APP_VERSION_ROOT_PATH);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ class Cookies
|
||||||
static::init();
|
static::init();
|
||||||
$sPath = static::$DefaultPath;
|
$sPath = static::$DefaultPath;
|
||||||
$sPath = $sPath && \strlen($sPath) ? $sPath : '/';
|
$sPath = $sPath && \strlen($sPath) ? $sPath : '/';
|
||||||
// https://github.com/the-djmaze/snappymail/issues/451
|
// https://github.com/nextgen-networks/snappymail/issues/451
|
||||||
// The 4K browser limit is for the entire cookie, including name, value, expiry date etc.
|
// The 4K browser limit is for the entire cookie, including name, value, expiry date etc.
|
||||||
$iMaxSize = 4000 - \strlen($sPath . $sName);
|
$iMaxSize = 4000 - \strlen($sPath . $sName);
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ abstract class Base
|
||||||
$gpgconf = static::findBinary('gpgconf');
|
$gpgconf = static::findBinary('gpgconf');
|
||||||
if ($gpgconf) {
|
if ($gpgconf) {
|
||||||
$cmd = $gpgconf . ' --kill gpg-agent';
|
$cmd = $gpgconf . ' --kill gpg-agent';
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1560#issuecomment-2144817883
|
// https://github.com/nextgen-networks/snappymail/issues/1560#issuecomment-2144817883
|
||||||
// if (\version_compare($this->version, '2.4.0', '<')) {
|
// if (\version_compare($this->version, '2.4.0', '<')) {
|
||||||
$cmd .= ' ' . \escapeshellarg($this->options['homedir']);
|
$cmd .= ' ' . \escapeshellarg($this->options['homedir']);
|
||||||
// }
|
// }
|
||||||
|
|
@ -402,7 +402,7 @@ abstract class Base
|
||||||
protected function setInput(&$input) : void
|
protected function setInput(&$input) : void
|
||||||
{
|
{
|
||||||
if (\is_resource($input)) {
|
if (\is_resource($input)) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/331
|
// https://github.com/nextgen-networks/snappymail/issues/331
|
||||||
// $meta['stream_type'] == MEMORY or $meta['wrapper_data'] == MailSo\Base\StreamWrappers\Literal
|
// $meta['stream_type'] == MEMORY or $meta['wrapper_data'] == MailSo\Base\StreamWrappers\Literal
|
||||||
$meta = \stream_get_meta_data($input);
|
$meta = \stream_get_meta_data($input);
|
||||||
if (!\in_array($meta['stream_type'], ['STDIO', 'TEMP'])) {
|
if (!\in_array($meta['stream_type'], ['STDIO', 'TEMP'])) {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class PGP extends Base implements \SnappyMail\PGP\PGPInterface
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: parse result
|
* TODO: parse result
|
||||||
* https://github.com/the-djmaze/snappymail/issues/89
|
* https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
*/
|
*/
|
||||||
protected function listDecryptKeys(/*string|resource*/ $input, /*string|resource*/ $output = null)
|
protected function listDecryptKeys(/*string|resource*/ $input, /*string|resource*/ $output = null)
|
||||||
{
|
{
|
||||||
|
|
@ -137,7 +137,7 @@ class PGP extends Base implements \SnappyMail\PGP\PGPInterface
|
||||||
*/
|
*/
|
||||||
public function decryptVerify(string $text, string &$plaintext) /*: array|false*/
|
public function decryptVerify(string $text, string &$plaintext) /*: array|false*/
|
||||||
{
|
{
|
||||||
// TODO: https://github.com/the-djmaze/snappymail/issues/89
|
// TODO: https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,7 +146,7 @@ class PGP extends Base implements \SnappyMail\PGP\PGPInterface
|
||||||
*/
|
*/
|
||||||
public function decryptVerifyFile(string $filename, string &$plaintext) /*: array|false*/
|
public function decryptVerifyFile(string $filename, string &$plaintext) /*: array|false*/
|
||||||
{
|
{
|
||||||
// TODO: https://github.com/the-djmaze/snappymail/issues/89
|
// TODO: https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ class SMIME extends Base
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: parse result
|
* TODO: parse result
|
||||||
* https://github.com/the-djmaze/snappymail/issues/89
|
* https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
*/
|
*/
|
||||||
protected function listDecryptKeys(/*string|resource*/ $input, /*string|resource*/ $output = null)
|
protected function listDecryptKeys(/*string|resource*/ $input, /*string|resource*/ $output = null)
|
||||||
{
|
{
|
||||||
|
|
@ -134,7 +134,7 @@ class SMIME extends Base
|
||||||
*/
|
*/
|
||||||
public function decryptVerify(string $text, string &$plaintext) /*: array|false*/
|
public function decryptVerify(string $text, string &$plaintext) /*: array|false*/
|
||||||
{
|
{
|
||||||
// TODO: https://github.com/the-djmaze/snappymail/issues/89
|
// TODO: https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,7 +143,7 @@ class SMIME extends Base
|
||||||
*/
|
*/
|
||||||
public function decryptVerifyFile(string $filename, string &$plaintext) /*: array|false*/
|
public function decryptVerifyFile(string $filename, string &$plaintext) /*: array|false*/
|
||||||
{
|
{
|
||||||
// TODO: https://github.com/the-djmaze/snappymail/issues/89
|
// TODO: https://github.com/nextgen-networks/snappymail/issues/89
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ class IMagick extends \Imagick implements \SnappyMail\Image
|
||||||
|
|
||||||
public static function createFromStream($fp)
|
public static function createFromStream($fp)
|
||||||
{
|
{
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1201
|
// https://github.com/nextgen-networks/snappymail/issues/1201
|
||||||
$data = \stream_get_contents($fp);
|
$data = \stream_get_contents($fp);
|
||||||
return static::createFromString($data);
|
return static::createFromString($data);
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -104,9 +104,9 @@ abstract class Integrity
|
||||||
'json' => function_exists('json_decode'),
|
'json' => function_exists('json_decode'),
|
||||||
'libxml' => function_exists('libxml_use_internal_errors'),
|
'libxml' => function_exists('libxml_use_internal_errors'),
|
||||||
'dom' => class_exists('DOMDocument'),
|
'dom' => class_exists('DOMDocument'),
|
||||||
// https://github.com/the-djmaze/snappymail/issues/1392
|
// https://github.com/nextgen-networks/snappymail/issues/1392
|
||||||
'fileinfo' => extension_loaded('fileinfo')
|
'fileinfo' => extension_loaded('fileinfo')
|
||||||
// https://github.com/the-djmaze/snappymail/issues/392
|
// https://github.com/nextgen-networks/snappymail/issues/392
|
||||||
// 'phar' => class_exists('PharData')
|
// 'phar' => class_exists('PharData')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ class Login extends \SnappyMail\SASL
|
||||||
?string $challenge = null) : string
|
?string $challenge = null) : string
|
||||||
{
|
{
|
||||||
// $challenge should be 'VXNlcm5hbWU6', but broken on some systems
|
// $challenge should be 'VXNlcm5hbWU6', but broken on some systems
|
||||||
// See https://github.com/the-djmaze/snappymail/issues/693
|
// See https://github.com/nextgen-networks/snappymail/issues/693
|
||||||
if ($challenge && !\str_starts_with($this->decode($challenge), 'Username:')) {
|
if ($challenge && !\str_starts_with($this->decode($challenge), 'Username:')) {
|
||||||
throw new \Exception("Invalid response: {$this->decode($challenge)}");
|
throw new \Exception("Invalid response: {$this->decode($challenge)}");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class Scram extends \SnappyMail\SASL
|
||||||
function __construct(string $algo)
|
function __construct(string $algo)
|
||||||
{
|
{
|
||||||
if (\stripos($algo, '-PLUS')) {
|
if (\stripos($algo, '-PLUS')) {
|
||||||
// https://github.com/the-djmaze/snappymail/issues/182
|
// https://github.com/nextgen-networks/snappymail/issues/182
|
||||||
throw new \Exception("SASL SCRAM channel binding unsupported: {$algo}");
|
throw new \Exception("SASL SCRAM channel binding unsupported: {$algo}");
|
||||||
}
|
}
|
||||||
$algo = \str_replace('sha-', 'sha', \strtolower($algo));
|
$algo = \str_replace('sha-', 'sha', \strtolower($algo));
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,9 @@
|
||||||
<br />
|
<br />
|
||||||
</span>
|
</span>
|
||||||
<br />
|
<br />
|
||||||
<a class="btn" href="https://github.com/the-djmaze/snappymail/releases" target="_blank" data-i18n="TAB_ABOUT/BUTTON_RELEASES"></a>
|
<a class="btn" href="https://github.com/nextgen-networks/snappymail/releases" target="_blank" data-i18n="TAB_ABOUT/BUTTON_RELEASES"></a>
|
||||||
<a class="btn" data-bind="visible: coreUpdatable, click: updateCoreData" data-i18n="GLOBAL/UPDATE"></a>
|
<a class="btn" data-bind="visible: coreUpdatable, click: updateCoreData" data-i18n="GLOBAL/UPDATE"></a>
|
||||||
<a class="btn" href="https://github.com/the-djmaze/snappymail/releases/latest" data-bind="visible: !coreUpdatable()" data-i18n="GLOBAL/UPDATE"></a>
|
<a class="btn" href="https://github.com/nextgen-networks/snappymail/releases/latest" data-bind="visible: !coreUpdatable()" data-i18n="GLOBAL/UPDATE"></a>
|
||||||
</div>
|
</div>
|
||||||
<div data-bind="visible: 'up-to-date' === statusType()">
|
<div data-bind="visible: 'up-to-date' === statusType()">
|
||||||
<i style="color: green">✔</i>
|
<i style="color: green">✔</i>
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
<h3>PHP</h3>
|
<h3>PHP</h3>
|
||||||
<div data-bind="hidden: php64" class="alert">
|
<div data-bind="hidden: php64" class="alert">
|
||||||
<i class="fontastic" style="color:red">⚠</i>
|
<i class="fontastic" style="color:red">⚠</i>
|
||||||
PHP is running in 32bit mode. <a href="https://github.com/the-djmaze/snappymail/issues/830#issuecomment-1372112793">read here</a>
|
PHP is running in 32bit mode. <a href="https://github.com/nextgen-networks/snappymail/issues/830#issuecomment-1372112793">read here</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table table-hover table-bordered"><thead><tr>
|
<table class="table table-hover table-bordered"><thead><tr>
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@
|
||||||
<div class="alert alert-error span8" style="margin-top: 10px;">
|
<div class="alert alert-error span8" style="margin-top: 10px;">
|
||||||
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
||||||
<div data-i18n="TAB_GENERAL/ALERT_DATA_ACCESS"></div>
|
<div data-i18n="TAB_GENERAL/ALERT_DATA_ACCESS"></div>
|
||||||
<a href="https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#secure-data-folder"
|
<a href="https://github.com/nextgen-networks/snappymail/wiki/Installation-instructions#secure-data-folder"
|
||||||
target="_blank"><strong>https://github.com/the-djmaze/snappymail/wiki/Installation-instructions</strong></a>
|
target="_blank"><strong>https://github.com/nextgen-networks/snappymail/wiki/Installation-instructions</strong></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-horizontal">
|
<div class="form-horizontal">
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@
|
||||||
|
|
||||||
<h4>
|
<h4>
|
||||||
<span data-i18n="POPUPS_DOMAIN/DISABLE_CAPABILITIES"></span>
|
<span data-i18n="POPUPS_DOMAIN/DISABLE_CAPABILITIES"></span>
|
||||||
<a style="margin-left:0.5em" href="https://github.com/the-djmaze/snappymail/wiki/IMAP-capabilities" target="_blank">ⓘ</a>
|
<a style="margin-left:0.5em" href="https://github.com/nextgen-networks/snappymail/wiki/IMAP-capabilities" target="_blank">ⓘ</a>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<div data-bind="foreach: imapCapabilities" style="columns: 16em auto">
|
<div data-bind="foreach: imapCapabilities" style="columns: 16em auto">
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// cPanel https://github.com/the-djmaze/snappymail/issues/697
|
// cPanel https://github.com/nextgen-networks/snappymail/issues/697
|
||||||
if (defined('APP_PLUGINS_PATH') && !empty($_ENV['CPANEL']) && !is_dir(APP_PLUGINS_PATH.'login-cpanel')) {
|
if (defined('APP_PLUGINS_PATH') && !empty($_ENV['CPANEL']) && !is_dir(APP_PLUGINS_PATH.'login-cpanel')) {
|
||||||
$asApi = !empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']);
|
$asApi = !empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']);
|
||||||
$_ENV['SNAPPYMAIL_INCLUDE_AS_API'] = true;
|
$_ENV['SNAPPYMAIL_INCLUDE_AS_API'] = true;
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ if (isset($_SERVER['HTTPS']) && !headers_sent()) {
|
||||||
header('Strict-Transport-Security: max-age=31536000');
|
header('Strict-Transport-Security: max-age=31536000');
|
||||||
}
|
}
|
||||||
|
|
||||||
// cPanel https://github.com/the-djmaze/snappymail/issues/697
|
// cPanel https://github.com/nextgen-networks/snappymail/issues/697
|
||||||
if (!empty($_ENV['CPANEL']) && !is_dir(APP_PLUGINS_PATH.'login-remote')) {
|
if (!empty($_ENV['CPANEL']) && !is_dir(APP_PLUGINS_PATH.'login-remote')) {
|
||||||
require __DIR__ . '/cpanel.php';
|
require __DIR__ . '/cpanel.php';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue