2
Smarter Mail 16 - Web client failing to refresh when new mail arrives.
Problem reported by Bryant Zimmerman - 6/18/2019 at 11:05 AM
Resolved
After updating to the latest version of Smarter Mail 16 we are now are having an issue where the webmail client fails to refresh and show new mail. The mail shows if the users hard refresh the browser by pressing F5 or clicking the refresh button.  This is occurring on all browsers running on Windows, Linux and Mac.  

We have tried to clear cookies and cached web content and it is not repairing the issue.  I need to resolve this ASAP as users are becoming very frustrated.

Note: Users using active sync, pop3 and imap are not affected. This seems to be isolated to the web client. 

There were no errors raised during the upgrade process so I am assuming this must be some error caused during the upgrade that was not flagged or shown.

Any ideas to resolve this are appreciated. 

11 Replies

Reply to Thread
0
Kyle Kerst Replied
Employee Post
Hello Bryant, can I have you test something real quick? Open your browser and log in to your webmail interface, open the browser's Developer Tools and switch to the Console tab. Then, send yourself a few test emails and check to see if any errors (specifically SignalR errors) are raised here. Thanks in advance!
Kyle Kerst System/Network Administrator SmarterTools Inc. (877) 357-6278 www.smartertools.com
0
Bryant Zimmerman Replied
On Edge I am seeing the following..

 [18:32:37 GMT-0400 (Eastern Daylight Time)] SignalR: Invoking mailhub.Ping

But emails do not update

On Chrome we see

[SignalR Self Check] Server did not respond within 30000ms, check FAILED.

Possibly unhandled rejection: undefined
(anonymous) @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:127
(anonymous) @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:99
g @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:138
$eval @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:153
$digest @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:150
(anonymous) @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:153
f @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:52
(anonymous) @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:55
setTimeout (async)
k.defer @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:55
$evalAsync @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:153
(anonymous) @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:137
h @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:138
n @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:140
m @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:140
reject @ angular-v-16.3.6989.16337.8d6966ae90ac200.js:138
o @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97
(anonymous) @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97
setTimeout (async)
o @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97
(anonymous) @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97
setTimeout (async)
o @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97
(anonymous) @ site-v-16.3.6989.16337.8d6966ae90ac200.js:97

0
Kyle Kerst Replied
Employee Post
Thanks Bryant, these errors indicate SignalR is not functioning as expected. Are you running Windows Server 2012 R2 or better? You may need to go into the Server Manager in Windows and manually add the WebSockets options, or determine what might be blocking this functionality on your server.

Also, please try to leverage Chrome/Firefox as much as possible for this testing as we did identify some issues in Edge that stem from Edge itself, and Microsoft is working on rolling out the Chromium based version of Edge here shortly which we anticipate will function much better with our products. 
Kyle Kerst System/Network Administrator SmarterTools Inc. (877) 357-6278 www.smartertools.com
0
Bryant Zimmerman Replied
No the server is running Windows Server 2012 currently. 
Is there a WebSockets option on Server 2012?
We have plans later this summer to move to Server 2019 but we are stuck right now and have to get this working. 
0
Bryant Zimmerman Replied
OK I checked and WebSockets is loaded on Server 2012, and appears to be correctly configured. 
Here is the system diag

InfoSmarterMail Enterprise Version - 16.3.6989
InfoHosting Process: w3wp
InfoPipeline Mode: Integrated
PassedMicrosoft.Net Framework Version: 4.0.30319.42000
0
Bryant Zimmerman Replied
Ok after doing some web searches. In a developer article with web sockets I found a recommendation to also install the HTTP Activation feature when using WebSockets.  Using powershell we did the following. 

Install-WindowsFeature -name NET-HTTP-Activation
Install-WindowsFeature -name NET-WCF-HTTP-Activation45

Do this seems to have allowed WebSockets to start working. I am not sure what the two above installations install in addition, but something there fixed the WebSockets issue for now.   Maybe these are required and are there by default on 2012 r2 +...

Maybe the installer should be updated to check for them. Installing an update and breaking a major function like mail refreshes hurts. 

We are doing more tests to ensure the issue is fixed for all customers, but right now it looks like we are at least closer to the root issue. 

If further testing holds I will come back and mark this as the Resolution. 
0
Kyle Kerst Replied
Employee Post
Thats great news Bryant, happy to hear it! I did hear from development today that occasionally a restart of the application pool is enough to kickstart SignalR as well, so keep an eye out for it in the future. Once you move to a newer server I don't see these being issues going forward. 
Kyle Kerst System/Network Administrator SmarterTools Inc. (877) 357-6278 www.smartertools.com
0
Fatih Gülsuyu Replied
I've been having a similar problem for a while. Unfortunately, the solutions suggested here did not help.  Although it is up to date with the latest available version, it gives the following message in the console. 

Content Security Policy of your site blocks the use of 'eval' in JavaScript`
The Content Security Policy (CSP) prevents the evaluation of arbitrary strings as JavaScript to make it more difficult for an attacker to inject unathorized code on your site.
To solve this issue, avoid using eval(), new Function(), setTimeout([string], ...) and setInterval([string], ...) for evaluating strings.
If you absolutely must: you can enable string evaluation by adding unsafe-eval as an allowed source in a script-src directive.
⚠️ Allowing string evaluation comes at the risk of inline script injection.
1
Kyle Kerst Replied
Employee Post
Hello Fatih, I'm sorry to hear you're having issues with this. This issue looks to be a little different than the original issue on this post. Is this on the latest SmarterMail version? If so, could we get a ticket started on this so we can help investigate? At that point I may move your reply to its own post so we can update the community with our results. 
Kyle Kerst System/Network Administrator SmarterTools Inc. (877) 357-6278 www.smartertools.com
1
Fatih Gülsuyu Replied
Hi,

I'm having this issue with the latest version available now. I contacted your support team. Thanks a lot for your help.

Build 8451 (Feb 20, 2023)
0
Kyle Kerst Replied
Employee Post
You're very welcome!
Kyle Kerst System/Network Administrator SmarterTools Inc. (877) 357-6278 www.smartertools.com

Reply to Thread