IceWarp WebClient provides access to multiple services, including Mail. When a user receives, sends, or creates an email, it is recorded in the file system of the IceWarp server. Then the email is indexed by the database that creates the link to it. The link is stored in the Directory Cache. The latter shares the link with WebClient Cache (or other integrated services like OutlookSync, Thunderbird, FileSync, etc.). When the user wants to see the email in the Mail service , WebClient uses the link stored in the WebClient Cache to access the Directory Cache and find the email in the file system.
In case the user is not able to find certain emails or even email folders (Inbox, Sent, Drafts, Trash) in WebClient there are two reasons:
- The emails are still stored in the file system but the link in Directory Cache / WebClient Cache does not lead to them or is missing.
- The emails are not in the file system thus the database is not able to index them. In this case, you can recover the emails only from the file system backup. That is why we always recommend creating a backup of your server. Once the file system is recovered, follow the procedure described below.
How to troubleshoot
First, check if the emails are stored in your file system. Go to System -> Storage -> Directories -> Mail path and copy the email pass.
You can check emails on the whole server or in a certain domain, account, and folder. For the whole server, use only Mail path otherwise, modify the path according to the example below.
- Linux and Docker
{Mail path}/{domain}/{account}/{folder}. For example: /mnt/data/mail/x1sola.onice.io/mike.sparrow/Inbox
- Windows
Open File Explorer and follow the path to get to the IceWarp install folder -> {domain} -> {account} -> {folder}
Once you see that the emails are in your file system, refresh both the Directory Cache and WebClient Cache.
Refreshing Directory Cache
- If all users do not see their emails, refresh the Directory Cache for the whole server. Go to System -> Advanced -> Directory Cache tab -> click Run Now
- If only particular users do not see the emails:
- Check the logs. Go to System > Logging > Debug and select Extended in the dropdown for the Directory Cache.
- Refresh the Directory cash only for them. Go to Management -> {domain} -> Users -> {user} -> Options -> click Refresh directory cache
- Go back to the Directory Cache logs and check them for errors. The reason for ongoing Directory Cache can be in data that cannot be cached. For example, if an email folder contains special characters. If there are no errors go to the next step.
Note: Make sure the user is logged out. After the Directory Cache is refreshed, restart the services.
- Once you completed refreshing the Directory Cache, refresh the WebClient Cache, since they use the same link.
- Check the logs. Go to System > Logging > Debug and select Extended in the dropdown for the Directory Cache.
Refreshing WebClient Cache
You can refresh the WebClient Cache only for one account at a time.
If you have IceWarp server version Deep Castle or Epos 14.0.0.1-14.0.0.15, see How to reset WebClient cache using WCCM tool
If you have IceWarp server version Epos 14.1.0.0 and newer:
- First, you need to check if your server uses SQLite or a centralized database: Maria DB, MySQL, etc.
Go to GroupWare > WebClient > DB settings.
Note: We recommend using the MariaDB database for IceWarp internal databases.
-
Copy the Database name.
- Go to System -> Tools -> SQL Manager.
- Click Database and enter the Database address that you have copied to access it.
- In SQL field, enter the query:
DELETE i FROM item AS i INNER JOIN folder on i.folder_id = folder.folder_id
Change user@domain.com for the account where you want to refresh the WebClient Cache and click Execute.
WHERE folder.account_id = 'user@domain.com' - In the same SQL field, enter the following query.
DELETE FROM folder WHERE folder.account_id = 'user@domain.com'
Change user@domain.com for the account where you want to refresh the WebClient Cache and click Execute.
If the query is executed successfully, you will see OK- {number} ms at the bottom of the window.
- Go to WebClient and click
to refresh the email list in each folder.
Once all links to your file system are passed to the WebClient Cache, your WebClient will display the emails. Click folders one by one and refresh the list of emails in each folder. It may take some time.
Note: If you have SQLite, browse the mailbox of the account, find the \~webmail\cache.db file, and rename it (for example, new_cache.db). Keep the old file as a backup in case you will need to revert changes) |
To find out more about Directory and WebClient Cache refresh, see Reset the Directory and WebClient Caches.
Comments
0 comments
Article is closed for comments.