[sylpheed:35258] Re: Mailto syntax (Opera)

Michael A. Puls II shadow2531 at gmail.com
Mon May 14 12:32:04 JST 2012


Did some testing on Win7 x64. Here's how Sylpheed expects things to work:

When installing, Sylpheed is mentioned as a registered application in 
"HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications".

"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Sylpheed" is added to the 
registry. It contains info about Sylpheed's capabilities. In 
"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Sylpheed\Capabilities\URLAssociations" 
for example, it says it supports "mailto" with the "Sylpheed.Url.MailTo" 
handler.

"HKEY_CLASSES_ROOT\Sylpheed.Url.MailTo" and 
"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Sylpheed.Url.MailTo" are added to 
the registy. They contain the command used to pass the mailto URI to 
Sylpheed.

Then, when you set Sylpheed as the default in "Default Programs" in 
Win7, the "Progid" string's value in 
"HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\MAILTO\UserChoice" 
gets set to "Sylpheed.Url.MailTo".

Association is then complete. Firefox can then look at 
"HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\MAILTO\UserChoice" 
and then to 
"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Sylpheed.Url.MailTo\shell\open\command" 
for the command. (Firefox could look at 
"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Sylpheed\Protocols\mailto\shell\open\command" 
for the command too, but I don't think it does.)

(Sylpheed adds a few reg keys in "\SOFTWARE\Wow6432Node" (where some 
32bit program stuff is at).

Now, Thunderbird on the other hand does more than Sylpheed. When you set 
Thunderbird as the default program in "Default Programs", the 
"(Default)" string's value in "HKEY_CURRENT_USER\Software\Clients\Mail" 
gets set to "Mozilla Thunderbird", which tells browsers to look at 
"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Mozilla Thunderbird" where the 
command is at. (But Thunderbird does the Sylpheed stuff above too, so 
they could use the "UserChoice" method to find Thunderbird's command too.)

But, there's more. In Thunderbird itself, when you goto "Tools -> 
options -> advanced -> general" and choose "check now" and check 
"mailto", Thunderbird *also* makes sure that 
"HKEY_CURRENT_USER\Software\Classes\mailto" is present and that its 
commands are correct. For example, Thunderbird even updates the command 
in "HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command" to 
make sure it's correct. Thunderbird does the same thing with 
"HKEY_CLASSES_ROOT\mailto".

Now, what Opera does is *simply* look for the mailto command in 
"HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command". That's 
all that Opera does. That's why Opera has no problem finding Thunderbird 
because Thunderbird sets and updates that key. Since Sylpheed doesn't, 
Opera can't find Sylpheed unless you manually set that key.

So, what needs to happen is Sylpheed needs to do like Thunderbird and 
set the "mailto" key or Opera needs to do like Firefox and make user of 
the "UserChoice" key way of finding the mailto handler. Or, both need to 
happen for good measure.

-- 
Michael




More information about the Sylpheed mailing list