Mailbird in Wine

Questions about Wine on Linux
Post Reply
Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Mailbird in Wine

Post by Wodger » Mon Jun 14, 2021 11:52 pm

Good day all,

After my life recently got turned upside down, I'm just getting back to PC related things again.

One program I am starting to miss from Windows is Mailbird. I dropped a line to the developers and they gave me the prerequisites for Mailbird, but can't prevent the installer attempting to install these requisites on install (no switch available for command line). They also have no plans in supporting linux for years already.
Using Wine 6.10:
After apparent successful install adding no prerequisites, attempting to run fails out with
Attachment1.jpg
Installing prerequisites (.net 4.72 and VC++ 2017/2019), then installing Mailbird into this prefix actually got almost to starting properly then fails out with mailbirds own troubleshooter:

Code: Select all

System.Globalization.CultureNotFoundException: Culture is not supported.
Parameter name: name
es-us is an invalid culture identifier.
   at Mailbird.App.Application_Startup(Object sender, StartupEventArgs e)
   at System.Windows.Application.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Anyone have anymore success at running mailbird?

Thanks,

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Thu Jun 17, 2021 4:50 am

So I've managed to "bypass" the locale error and get mailbird started by setting system to pre windows 7 in wincfg, (this is likely as I read pre windows 7, the locales in .net were handled differently). Unfortunately that brings with it more problems as then it crashes when scanning for the email exchange details with "attempting to read or edit protected memory" - something I highly suspect is related to the fact its running not windows 7 or above.

For the first crash, my research online found this:
"It seems something in the .Net framework tries to resolve your currently set UI culture. If the UI language is set differently from the keyboard, this seems to cause windows to compose its own culture string, of the format "interface language-keyboard language""

Where its getting "es-us" I'm at a loss as everything on my system is en-us. In the output from terminal it presents this:

Code: Select all

0024:fixme:nls:LCIDToLocaleName unsupported flags 8000000
0024:fixme:nls:get_dummy_preferred_ui_language (0x8 0021D46C 00000000 0021D468) returning a dummy value (current locale)
0024:fixme:nls:get_dummy_preferred_ui_language (0x8 0021D46C 003262C8 0021D468) returning a dummy value (current locale)
I would love to see what its assigning as a dummy value or even how to set the value manually. I have tried setting "LANG=" inline with command for the executable but it seems its not having any effect to it.

I also dropped a line to Mailbird support, and they responded that they will contact a developer, but as its not a Windows issue, I don't hold much hope.

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Mon Jun 21, 2021 9:06 pm

So, I've followed up again with Mailbird support pointing out a few things:

I basically found this online:
https://www.codeproject.com/Articles/15 ... s-Guide-to
Part the way down it mentions (underling key words here):
Another common reason to use a custom culture is to support a known language outside its known country of use. For example, Spanish is widely used in the United States, but the .NET Framework does not have an es-US (Spanish (United States)) culture.
Which now explains why .net is throwing this error when attempting to start as included in the mailbird install files is an es-us folder with a localization resources dll inside.
I asked the support how they handle this normally - do they add something in on install as this error is not thrown in a windows VM?

I'm not sure how to add to the prefix this missing culture for .net - has anyone managed to do this? In the article I linked above it does mention coding something in to generate the custom culture, but I'm no professional coder and unsure how to attack this.

Pete

fargodwe

Re: Mailbird in Wine

Post by fargodwe » Tue Jun 22, 2021 2:58 am

But are you using Spanish or English? en-us is a valid culture in .net, just as es-us is. There *should* be no need to add it. If you look in the folder structure for the wine prefix you loaded Mailbird to you will see Mailbird itself has things like es-us in it's folder structure but not en-us. I think the question still remains where is Mailbird getting es-us instead of using en-us as the location? I think if that question can be answered then perhaps a solution can be found. I'm still trying to look at it.

You should also note that es-us does seem to be a valid combination to .net based on this:

https://lonewolfonline.net/list-net-cul ... try-codes/

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Tue Jun 22, 2021 3:49 am

Hi mate, great to get more eyes on this!

I'm trying to install with English, but despite setting the installer to another language (Spanish or French - I'm equally poor at both :D ) the installer seems to still call up English as its installer language and still throws the same error on start (also in English).
I have asked mailbird support about this, but no response yet.

Weird regarding es-us being part of standard .net from that site. What I could do with is a command to actually check as there is now a question "is it part of or not?"

I am still trying new ideas as they come into my head - I highly expect this won't be the only hurdle to cross getting mailbird running to a point of usable, but I'm game as it is in my opinion a great mail software.

Pete

EDIT: - Rather than post again, I found this:

https://docs.microsoft.com/en-us/opensp ... dfrom=MSDN

According to that page, es-us was available in vista/server 2008 upwards. As said before in an earlier post, by changing wine to run with pre-windows 7, I made it past that error, as from another online document which escapes me at the moment (I have looked at loads on this over the last week), the way windows handles locales is different for windows 7 and up. Perhaps I should keep going along this route and try and solve the next error which is sqlite related if I remember.

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Tue Jun 22, 2021 4:19 am

So, have got through the first error again by setting OS to Vista/2008 in winecfg. It opens Mailbird and gets to adding an email address, at which point it crashes following searching for email details with:

Code: Select all

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at System.DirectoryServices.Interop.UnsafeNativeMethods.IntADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
   at System.DirectoryServices.Interop.UnsafeNativeMethods.ADsOpenObject(String path, String userName, String password, Int32 flags, Guid& iid, Object& ppObject)
   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.get_AdsObject()
   at System.DirectoryServices.PropertyValueCollection.PopulateList()
   at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
   at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
   at Microsoft.Exchange.WebServices.Autodiscover.DirectoryHelper.GetScpUrlList(String domainName, String ldapPath, Int32& maxHops)
   at Microsoft.Exchange.WebServices.Autodiscover.DirectoryHelper.GetAutodiscoverScpUrlsForDomain(String domainName)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.DefaultGetScpUrlsForDomain(String domainName)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetAutodiscoverServiceUrls(String domainName, Int32& scpHostCount)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetAutodiscoverServiceHosts(String domainName, Int32& scpHostCount)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetSettings[TGetSettingsResponseCollection,TSettingName](List`1 identities, List`1 settings, Nullable`1 requestedVersion, GetSettingsMethod`2 getSettingsMethod, Func`1 getDomainMethod)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(List`1 smtpAddresses, List`1 settings)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetSoapUserSettings(String smtpAddress, List`1 requestedSettings)
   at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(String userSmtpAddress, UserSettingName[] userSettingNames)
   at Microsoft.Exchange.WebServices.Data.ExchangeService.GetAutodiscoverUrl(String emailAddress, ExchangeVersion requestedServerVersion, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)
   at Microsoft.Exchange.WebServices.Data.ExchangeService.AutodiscoverUrl(String emailAddress, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)
   at Mailbird.Business.Connections.ExchangeClientWrapper.ExistsAutoDiscoverServer(String email)
   at Mailbird.Business.ViewModels.WelcomeWindow.DetectingServerSettingsViewModel.<>c__DisplayClass10_0.<DetectServerSettings>b__2()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
So, will see where I go from here, the installer didn't mind having OS set to Vista/2008 but as Vista/2008 only supports up to .net 4.6, I can assume its windows 7 or later for Mailbird - could this be the reason for this error?

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Tue Jun 22, 2021 5:06 am

I saw no reason to add another post, but couldn't edit my earlier one.

Looking at this, I think its best to stick with running in windows 7 and above due to the fact that 4.72 doesn't support anything less, neither will Mailbird.
I managed to finally change the language using the LANG: switch on the executable, but still same error thrown (unknown culture error) - which was still in English :P - back to square one.

jkfloris
Level 10
Level 10
Posts: 1517
Joined: Thu Aug 14, 2014 10:10 am

Re: Mailbird in Wine

Post by jkfloris » Wed Jun 23, 2021 4:46 am

You can get around the first error by modifying the SupportedAppLanguages.json file to:

Code: Select all

{
  "languages": [
    "en"
  ]
}
Unfortunately, after that I also get the System.AccessViolationException: Attempted to read or write protected memory. error.

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Wed Jun 23, 2021 5:33 am

Hi jkfloris - great work mate!

I did some fiddling and found only to remove "no" and the famous "es-us" from that json file and mailbird starts up without the "culture error" (so other languages maybe still available while running - assume that's what the json file is doing).

I will relay this to the mailbird dev's and see what they come back with. It appears they are taking looks at this - here's hoping.

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Sat Jun 26, 2021 8:25 pm

Hi all!

Well, I'm still waiting on an answer from Mailbird support regarding the troublesome exception error we're encountering.

I had a brainwave last night, and this morning I started toying with old versions of Mailbird to see if I can get any of them working - Guess what:
Mailbird2_3.png
I'm still playing - it throws an error on install but otherwise appears to be functioning normally, was able to add my email account and it receives and sends emails. I didn't bother trying the imbedded apps yet as this version (2.3) is from 2016 and its likely they won't work, I'm slowly working my way up to newer versions to see when/if this exception error is thrown (will help the devs pin down whats doing it).
To be continued...

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Sat Jun 26, 2021 9:02 pm

So, after going through some versions I could find online, results are:

2.3.18 - no install error thrown but rendering issues on some dialogs and the culture issue (remove "no" from the json file to fix as mentioned before)
2.4.25 - As above
2.5.42 - crash on start
2.5.45 - crash on start
2.6.9 - The crash exception when searching for email account details same as latest version.

I will relay these findings to the Mailbird devs. It would be nice to use a more modern version than from 2017

Pete

Loufe
Newbie
Newbie
Posts: 1
Joined: Thu Jul 01, 2021 4:45 pm

Re: Mailbird in Wine

Post by Loufe » Thu Jul 01, 2021 4:47 pm

Pete,

Thank you for your efforts with this! I'm also very interested in this and would be happy to help in any way I can. Mailbird is one of the few things I sorely miss on Linux. Looking forward to what their Dev has to say, hopefully it can be just a quick patch and they can release a new executable installer. Please let me know if you need another system to test with (Manjaro x64).

Loufe

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Sat Jul 03, 2021 12:25 am

Hi all,
So its been a week and a half since anyone from the Mailbird team took a look at my support posts, and with the holiday weekend now in motion, I doubt nothing will come from them till mid next week.
I have been keeping an eye on this topic and it seems to be garnering around 100 views / day (probably everyone waiting for updates :D ). With luck, the Mailbird devs will take this positively and start to assist in getting Mailbird running in WINE (fingers crossed)
If I get anything from them, I will let everyone know.

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Thu Jul 08, 2021 8:23 am

Sorry guys. So, just over 3 weeks from my original request for assistance and this is what I get:
Dasha Zolotko (Mailbird)
Jul 8, 2021, 12:50 UTC

Hello again!

I am really afraid we do not have support for Linux at the moment.
All the best,
Dasha Zolotko
Just so you know, this is the same person that terminated my request in March regarding prerequisites installing automatically as I was concerned at the time that Mailbird was overriding the WINE installed versions - their response then was just as short.

With the upcoming Windows 11 at this point writing off 3 year or older hardware unless you do some dancing around trickery with command line installs etc. I am completely surprised and very saddened at what I think was a pretty poor response.

2100+ views in 3 weeks says it clearly to me, promises they would look into porting to Linux/Mac over 8 years ago when Mailbird was in beta. People really wanted this to work, but it appears something happened in their code when they upgraded to .net 4.72 in V2.6.4 (Aug 2019) that windows can handle, but causes this error when running in WINE.

What a shame.

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Thu Jul 08, 2021 11:24 am

I typically don't like getting fobbed off, and certainly not after such a short answer.

I contacted them back and clearly pointed out that Mailbird does run in WINE, although a 2017 version, but still runs. I also mentioned that when they upgraded to .net 4.72 something causes the error (about 2 years ago), and although it doesn't flag in windows, it could. I asked politely to be put in contact with a developer who might be able to shed some light on this.
What I got back within 15 minutes was the best answer I've had so far:
Hello Pete,

Thank you for your reply. Our CTO worked in the past with some users to try and fix the issues with launching Mailbird on WINE, but new ones kept appearing as soon as they rectified current ones at that time. Mailbird does not work on Wine or any other Linux emulator as far as we know - at least the newest version and our development team are fully focused on work at Mac OS version of Mailbird at the moment. Once we have MacOS version there we may be able to release Mailbird for Linux as porting to Linux would be possible then.
They don't go into specifics, but I sent back asking when this WINE activity was, as WINE development recently has been at a substantially fast rate than it has ever been, and I also asked if the "CTO" would be interested in revisiting the Mailbird in WINE.

I didn't stop though, and through a lot of hoop jumping:
Mailbird2point9.jpg
Yep - that's the latest version of Mailbird running right there, but crashes if you add new email accounts when fully installed (the mail server search is where it faults out with memory error)
I relayed this to Mailbird support and see what they come back with this time.

So how it was done:
> 32 Bit wine prefix, install .net 4, then .net 4.72 then VC2015-2019 (dotnet 4 and VC through winetricks, 4.72 via installer package)
> Install Mailbird 2.4.25.0 (found online free through respectable source), don't startup after install, don't update either
> Edit json file as before removing "no" entry (the es-us entry not here yet)
> Start Mailbird, and add an account (tried outlook only as GMail Auth out of date, and yahoo similar issue) - there are issues with some dialogs with this version.
> Goto settings, then updates, check for updates now - should download latest and install.
> It will try to reboot Mailbird, and fails, just close all windows.
> Re-edit json file removing the "no" and "es-us" entries
> Start Mailbird up.

Theres plenty of fixme flags in the console which some brighter people than I might be able to point out a solution to before I wake up tomorrow, and adding another email at this point crashes out with the usual memory error - shame can't add more emails in 2.4 without more hoop jumping (disabling auth stuff in Gmail and Yahoo etc.)
NOTE: did not test any built in apps yet (FB and messenger etc.), but assume as 3rd party integrations they might work OK - will play more tomorrow.

Pete

invisible kid
Level 3
Level 3
Posts: 96
Joined: Tue Dec 24, 2019 3:23 pm

Re: Mailbird in Wine

Post by invisible kid » Thu Jul 08, 2021 12:02 pm

Wow, good work!

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Thu Jul 08, 2021 7:08 pm

invisible kid wrote:
Thu Jul 08, 2021 12:02 pm
Wow, good work!
Thanks, its a move in the right direction at least, didn't sleep much last night as thinking about things.

So this morning have been playing. Once opened, Mailbird is spamming the terminal with several repetitive messages that I am trying to decipher but I haven't stumbled upon what could be missing, while spamming this causes CPU usage to remain low to moderate (15% spikes on my overclocked 4790K):

Code: Select all

0340:fixme:ole:CoGetDefaultContext -1, {000001c6-0000-0000-c000-000000000046}, 0A13EC44 stub
0340:fixme:ole:thread_context_info_QueryInterface interface not implemented {51372ae0-cae7-11cf-be81-00aa00a2fa25}
Eventually after about 5 minutes, it stops and it throws d3d fixme messages when interacting with the window - nothing looks out of place on the window though.

What works:
Mail in and out
Syncing folders
Moving mail messages to folders
Close/open to taskbar icon
Apps tested and working: Skype, FaceBook, FB Messenger, Whatsapp, Chrome, Google Drive and Dropbox
Apps not working: Discord - throws an error box CefSharp.Browser.SubProcess.exe on loading discord app page.
I don't have accounts for every app listed (more than 20) so if anyone else wants to jump in and test that would be great but its looking good so far

Obviously its not really a complete solution at the moment as you can't add any additional email accounts for gmail or yahoo. Only hotmail/outlook is OK at the moment as they use geo-location with password at this point.

If anyone has any thoughts what might be missing in the prefix to possibly solve this memory access error when searching for email server details that would be great or else at this point we just have to wait till Mailbird support comes back with a developer response on the issue.
(bit of a bugger as most of my alternate email accounts are gmail/yahoo :P )

Pete

Wodger
Level 2
Level 2
Posts: 19
Joined: Sat May 01, 2021 6:51 am

Re: Mailbird in Wine

Post by Wodger » Fri Jul 09, 2021 6:42 am

OK, so just an update, the mailbird support responded after I laid out my findings above, and unfortunately its not great news:
Hello Peter,

Thank you for your reply and detailed information, this is much appreciated.

I am afraid at the moment it will be not possible for us to provide any further support regarding launching Mailbird on Linux, we would love to be able to help but unfortunately, we do not have such capabilities at this moment in time.

If there would be anything else I could help you with however, please let me know.

Thank you and have a wonderful weekend!
Obviously the tech support is not interested in passing on the efforts made here by myself and others to where it can make a difference, so were basically on our own here - it doesn't throw an error in Windows so tough.

Not to be beaten, the error occurs when adding email accounts to Mailbird. I got around this one by running up a windows VM in virtualbox, installing latest version of mailbird there, putting my email accounts into it (authorizing each account). shutting it down, copying the Mailbird settings/accounts folder located in:

Code: Select all

C:\Users\”your user name”\AppData\Local
Transferred it to my install in Arch, and running it up - worked a treat and everything is working (apart from the discord app) - so that's really the last piece of the puzzle, although a really backwards way to get it sorted.

This way, you can install a 32bit prefix, the .net 4, .net 4.72, VCRuntime2015-2019 prerequisites, install latest version of Mailbird, remove the entries from Json file mentioned earlier and then add the email accounts in a windows VM, grab the settings folder, paste in and go.

I will however continue to look at this to see if I can find out what else could be missing in the prefix so this VM step can be eliminated. If anyone else has some extra thoughts please put them down, you never know, the more eyes on this, it could help everyone.

Pete

Post Reply