[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