This isn’t perfect, but it’s better than nothing. I’m using Windows 7, but this should work (with a few tweaks) on other versions too. You do NOT need to install any additional software, so Yahoo Toolbar or Yahoo Messenger are NOT required to make this work. It will work with any web browser, so Internet Explorer is fine, as is anything else, the browser that’s used is whatever your default browser is.
In HTML there is a URL type that causes a mail client to be opened when links are clicked, these URLs start with mailto: and are followed by an email address (similar to how http: causes a web browser to be opened).
If you have some email software installed on your PC then this works fine, but if you use webmail, in my case Yahoo mail, you get a message telling you that you have no email software installed (or maybe something that’s installed but you don’t use gets launched, which is annoying).
With this solution, a new browser window opens and gives you a compose window, with the email addressed to where the mailto link was pointing. This is accomplished via a small VBScript.
There are two parts to this process, a registry edit to alter the mailto URL handler for the current user, and a small bit of code to process the data and launch the default web browser. The script is made somewhat larger by the “installation” routine(s) that allow you to “install” and “uninstall” the URL handler by double-clicking the VBScript file.
Copy the following and paste it into a file called YahooMailto.vbs
Option Explicit 'RCMTech Mail Handler for Yahoo Mail Const cReg = "HKCU\Software\Classes\mailto\shell\open\command\" Dim oArgs, oShell Dim sText, iRet, bDoBackup Set oArgs = WScript.Arguments Set oShell = CreateObject("WScript.Shell") If oArgs.Count>0 Then sText = oArgs(0) sText = replace(sText,"mailto:","http://compose.mail.yahoo.com?To=") sText = replace(sText,"?subject=","&subject=") sText = replace(sText,"?body=","&body=") sText = replace(sText," ","%20") oShell.Run sText,0,False Else sText = "Use RCMTech Yahoo Mail mailto handler?" & vbCrLf & "Click Yes to install, No to remove." iRet = MsgBox(sText, vbYesNoCancel, "RCMTech Yahoo Mail Handler") Select Case iRet Case 2 'Cancel WScript.Quit Case 6 'Yes On Error Resume Next sText = oShell.RegRead(cReg) If Err.Number = 0 Then bDoBackup = True End If On Error GoTo 0 If InStr(sText, WScript.ScriptFullName) Then MsgBox "Mail handler seems to be installed for this user already", vbOKOnly, "RCMTech Yahoo Mail Handler" WScript.Quit Else If bDoBackup Then oShell.RegWrite cReg & "orig", sText, "REG_SZ" End If oShell.RegWrite cReg, "wscript.exe " & WScript.ScriptFullName & " ""%1""" MsgBox "Added mail handler value to registry", vbOKOnly, "RCMTech Yahoo Mail Handler" End If Case 7 'No On Error Resume Next sText = oShell.RegRead(cReg & "orig") If Err.Number = 0 Then On Error GoTo 0 oShell.RegWrite cReg, sText, "REG_SZ" oShell.RegDelete cReg & "orig" MsgBox "Reverted to previous mail handler value", vbOKOnly, "RCMTech Yahoo Mail Handler" Else On Error GoTo 0 oShell.RegDelete cReg MsgBox "Removed mail handler value", vbOKOnly, "RCMTech Yahoo Mail Handler" End If End Select End If
Put the .vbs file somewhere on your PC, I suggest something like C:\Users\Public, then double-click it and follow the instructions to change your URL handler for mailto. Double-click again to remove/revert to your previous mailto handler.
You need to be signed in to Yahoo for this to work, or to have ticked the “Keep me signed in” box when you last signed in.
Hope you find this useful.
