Git Product home page Git Product logo

webmail-pro-8's Introduction

Afterlogic Webmail Pro

Afterlogic Webmail Pro is a webmail front-end for your existing mail server, with personal calendar, contacts, and mobile sync.

Webmail Pro includes Paranoid Encryption module which provides strong AES-256 browser-based encryption. When enabled, encryption process occurs right in the browser, file content is transmitted to the server in encrypted form only, encryption keys are never transmitted to the server at all. Thus, even if the entire data from the server was stolen, your encrypted data is still safe: any data on the server cannot help decrypt encrypted files without the keys.

Afterlogic Webmail Pro: Message List

Installation instructions

During installation process you will need:

  1. Download and unpack the latest version of Webmail Pro into your installation root directory https://github.com/afterlogic/webmail-pro-8/archive/latest.zip

We're assuming that you wish to install the latest stable version of the product. If you're looking for the latest code (e.g., to contribute changes), the following steps needs to be taken:

  • Instead of unpacking the archive, clone the repository into the installation directory:
git clone https://github.com/afterlogic/webmail-pro-8.git INSTALL_FOLDER_PATH
  • change modules' versions in composer.json file to "dev-master"
  1. composer.phar file is available in repository, but you can download its latest version 2 from https://getcomposer.org/composer.phar

  2. Start the composer installation process by running the following from the command line:

    php composer.phar install

    NB: It is strongly advised to run composer as non-root user. Otherwise, third-party scripts will be run with root permissions and composer issues a warning that it's not safe. We recommend running the script under the same user web server runs under.

  3. Next, you need to build static files for the current module set. First of all, install all npm dependencies via

    npm install

    then install the dependencies required for adminpanel to work

    cd modules/AdminPanelWebclient/vue
    npm install
    npm install -g @quasar/cli

    or you can execute all the actions mentioned above by using the following command

    chmod +x builder.sh
    ./builder.sh -t npm
    
  4. Now you can build static files. Run the following commands in main directory

    npm run styles:build --themes=Default,DefaultDark,DeepForest,Funny,Sand
    npm run js:build
    npm run js:min

    and build adminpanel

    cd modules/AdminPanelWebclient/vue
    npm run build-production

    or use all-in-one command

    ./builder.sh -t build
    
  5. In case you want to use the product in development mode and work with JS, you need to run webpack dev server. But before that rename .env.dist to .env and specify the Web API host. For example, http://localhost/aurora/. Please note that if the backend responds on a domain other than localhost, you will have to specify custom headers in the index.php file to avoid CORS blocking cross-domain requests.

Now you can run webpack dev server:

npm run serve

This will compile JS script files. If you need to work with CSS, you need to run the following command:

npm run styles:watch --themes=Default,DefaultDark,DeepForest,Funny,Sand

You can modify the themes list and specify the themes you are currently working with.

  1. Now you are ready to open a URL pointing to the installation directory in your favorite web browser. Be sure to add /adminpanel/ to main URL to access admin interface.

  2. Upon installing the product, you'll need to configure your installation.

IMPORTANT:

  1. Make sure data directory is writable by the web server. For example:

    chown -R www-data:www-data /var/www/webmail/data
  2. It is strongly recommended to runs the product via https. If you run it via http, the majority of features will still be available, but some functionality aspects, such as authentication with Google account, won't work.

To enable automatic redirect from http to https, set RedirectToHttps to true in data/settings/config.json file.

Protecting data directory

All configuration files of the application and user data are stored in data directory, so it's important to protect data directory to make sure that nobody can access that directory over the Internet directly.

Licensing

This product is licensed under Afterlogic Software License. The modules and other packages included in this product as dependencies are licensed under their own licenses.

NB: Afterlogic Aurora modules which have dual licensing are licensed under Afterlogic Software License within this product.

webmail-pro-8's People

Contributors

afterlogic-support avatar artemij-nemec avatar dependabot[bot] avatar lena-sokolova avatar nadine-belanova avatar sash04ek avatar server5056 avatar vasil-sokolov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webmail-pro-8's Issues

PHP Fatal error OpenPgpWebclient Module.php

[10-Jan-2024 01:18:26 America/Toronto] PHP Fatal error: Uncaught Error: Call to a member function GetContactsInfo() on false in \webmail\public_html\modules\OpenPgpWebclient\Module.php:396 Stack trace: #0 [internal function]: Aurora\Modules\OpenPgpWebclient\Module->GetPublicKeysFromContacts(7) #1 \public_html\system\Module\AbstractModule.php(811): call_user_func_array(Array, Array) #2 \webmail\public_html\modules\Core\Module.php(665): Aurora\System\Module\AbstractModule->CallMethod('GetPublicKeysFr...', Array, true) #3 [internal function]: Aurora\Modules\Core\Module->EntryApi() #4 \webmail\public_html\system\Router.php(103): call_user_func_array(Array, Array) #5 \webmail\public_html\system\Module\Manager.php(607): Aurora\System\Router->route('api') #6 \webmail\public_html\system\Application.php(132): Aurora\System\Module\Manager->RunEntry('api') #7 \webmail\public_html\system\Application.php(100): Aurora\System\Application->Route('api') #8 \webmail\public_html\index.php(21): Aurora\System\Application::Start() #9 {main} thrown in \webmail\public_html\modules\OpenPgpWebclient\Module.php on line 396

Not sure if this is due to a module (*.json) that been set to disable but has a dependency?

9.7.5.build12-build-o3
PHP 8.3.1 (cli) (built: Dec 20 2023 14:06:10)

Not able to save settings in admin.

Tried to install the zip from here: https://afterlogic.com/download/webmail-pro, javascript console (chrome) has error, and not able to save the setting in admin. Can click the save button (it changes to saving.,..) but nothing happens, no network activity.

Then, tried the latest.zip from this repo, missing package.json thus npm install doesn't work.

Then, tried to run git clone this repo, per the instruction, no js error in chrome debug console, but
still cannot save. Same as before, can click save, but nothing happens.

Can't login with account created via API

HI everyone

we use https://afterlogic.com/webmail-pro-8-webapi/#api-Mail-CreateAccount to create an account which works well

But then we try to login using newly created account - either via api or web - getting an auth error

 {
  AuthenticatedUserId: 0,
  '@Time': 0.0588,
  SubscriptionsResult: null,
  '@TimeApiInit': 0.03,
  '@LoggerGuid': 'd34991b8',
  ErrorCode: 102,
  Module: ''
}

could you please assist what can be wrong

we use DoImapLoginOnAccountCreate=false config,
otherwise, when use true, we can't create an account either - failed with ErrorMessage: β€˜TAG1 NO (AUTHENTICATIONFAILED) Authentication failed.’,

After successful login page

I do not see a settings that allows one to configure what "tab" a successful login directs to.

After enabling a few plugins such a files, calendar, The /#mail is no longer the default page. Calendar is now the default.

Edit: MailLoginFormWebclient

Feature Request: Dark Theme

I feel the themes are a little lacking...
Typically these days everything has a bit of a dark theme.

Please implement a minimalist dark mode theme

MySQL 5.5 required

Some tables in
modules/Dav/Storages/Db/Sql/create.sql
are created with Charset utf8mb4 which breaks compability with MySQL versions older than MySQL 5.5.

Possible workaround pre-install:

sed -i 's/CHARSET=utf8mb4;/CHARSET=utf8;/g' modules/Dav/Storages/Db/Sql/create.sql

Paranoid Encryption for the Notes section

Hi,

Will be great if users are able to encrypt the notes with the Paranoid Encryption, ideally using the same key as the files encryption.

Is this even possible? Since the Notes is a imap folder at the backend.

Thanks,

Clarify the license situation (closed source?)

I've compared the LICENSE file of this repository with the one obtained in the zip file of 7.7.5 (current version from the download page).
I can see some subtle but probably important changes (spelling and white spaces ignored) it still seems like this is a closed source project with high restrictions on usage.

Given that you uploaded the code to github it is to be seen as "available for download and open to read under the terms of github". I am allowed to edit the files and republish those changes to github. But the LICENSE file is not super clear on what happens if I do that offline, it looks like you are not allowing that.

Some parts of the license points to code copyright Afterlogic 2002-2009 while the 7.7.5 portion of that says the code is copyright Afterlogic 2002-2011. Why is that?
(See sections 3C and 3D)

Is the project to be considered a closed or open source project?

Are you wiling to apply an OSI approved license to the code?

Please clarify under what permissions contributions are accepted.

Calendar module for mobile

Hi everyone

We found that Calendar module is available only for Web app

Screenshot 2021-07-12 at 17 21 22

Is there a ready module for mobile ?

Thank you

Web API Error - Mail/GetMessage

I am trying to fetch a content of email using the API. But it end up with "ErrorCode": 108. Can you please advise ?

Module : https://afterlogic.com/webmail-pro-8-webapi/#api-Mail-GetMessage

image

The response I am getting is below

image

I was able to use other API methods without any issue. Also enabled the debug and here is what it logged

[02:57:41.97][62712c91]  ===== ENTRY: Core::api
[02:57:41.97][62712c91]  URL: /afterlogic/?/Api/
[02:57:41.97][62712c91]  
[02:57:41.97][62712c91]  ===== API: Mail::GetMessage
[02:57:41.97][62712c91] Exception[1105]: 
~ /modules/mail/managers/accounts/manager.php (43)

----------------------------------------------------------------------
#0 /var/www/html/afterlogic/modules/Mail/Module.php(3080): Aurora\Modules\Mail\Managers\Accounts\Manager->getAccountById()
#1 [internal function]: Aurora\Modules\Mail\Module->GetMessage()
#2 /var/www/html/afterlogic/system/Module/AbstractModule.php(833): call_user_func_array()
#3 /var/www/html/afterlogic/modules/Core/Module.php(668): Aurora\System\Module\AbstractModule->CallMethod()
#4 [internal function]: Aurora\Modules\Core\Module->EntryApi()
#5 /var/www/html/afterlogic/system/Router.php(105): call_user_func_array()
#6 /var/www/html/afterlogic/system/Module/Manager.php(608): Aurora\System\Router->route()
#7 /var/www/html/afterlogic/system/Application.php(132): Aurora\System\Module\Manager->RunEntry()
#8 /var/www/html/afterlogic/system/Application.php(102): Aurora\System\Application->Route()
#9 /var/www/html/afterlogic/index.php(21): Aurora\System\Application::Start()
#10 {main}

Session stays alive on server after "logout"

I got a user who mentions that they sometimes (probably) see the CoreWebClient ERROR_USER_DELETED string right after/during logout. Or at least that's the closest string to the possibly jumbled up message I got through 'the telephone game'.

So my first angle was that maybe the javascript keeps requesting Api updates during logout, and then hits the Api while you are actually already logged out.

To test this I tried replaying one of the last XHR requests in Edge Chromium. Which does not execute. I guess because a session cookie was supposed to be invalidated.


So I used the 'Export to cURL' option. Which leads me to the actual issue of this ticket.

If you run the cURL command, you still get proper responses from the Api. So even though the Api sends a cookie invalidation message, it still keeps the session cookie or Bearer token on the server alive, and everything else connected to the logged in user.

Pretty-printed example response after sending "Module: Core, Method: Logout", notice AuthenticatedUserId":4, "MessageCount":2 and "FolderHash" being populated.

{
   "AuthenticatedUserId":4,
   "@Time":0.6703,
   "Module":"Mail",
   "Method":"GetMessages",
   "Result":{
      "@Object":"Collection\/MessageCollection",
      "@Count":0,
      "@Collection":[
         
      ],
      "Uids":[
         
      ],
      "UidNext":"206",
      "FolderHash":"593ced41306e980437d33da09880c917",
      "MessageCount":2,
      "MessageUnseenCount":0,
      "MessageResultCount":0,
      "FolderName":"INBOX",
      "Offset":0,
      "Limit":200,
      "Search":"",
      "Filters":"flagged",
      "New":[
         
      ]
   },
   "SubscriptionsResult":null,
   "@TimeApiInit":0.4405
}

So whatever happens, at least the session seems to get revived. Possibly the Bearer token is not invalidated. And in this request at least some data leaks.

I can also get 'GetQuota' data, so probably everything the user sees can be accessed.

Maybe related to: afterlogic/webmail-lite-8#78

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.