Set default mail client in macOS without adding an email account?

The simplest way to do this - which doesn't involve messing with Mail itself - is the old faithful RCDefaultApp
Yes it's ancient; yes it still works; yes it's free.

It installs as a control panel from where you can set defaults for just about anything on the machine... including Mail.

Simply select from a drop menu

enter image description here

If you want to have a poke at the other sections, note it can take some time to build the apps/services list; don't think it's hung, it's just thinking ;-)


I finally found something easy that worked, the SetDefaultMailApp from Microsoft:

https://docs.microsoft.com/en-us/outlook/troubleshoot/outlook-for-mac/useful-tools#setdefaultmailapp


You can use the system-installed Python interpreter to quickly change the default mail app.

Copy/paste the following command into Terminal, replacing com.microsoft.Outlook with the application bundle identifier for your mail app. Outlook's bundle identifier is com.microsoft.Outlook.

/usr/bin/python2.7 <<EOF
import LaunchServices;
result = LaunchServices.LSSetDefaultHandlerForURLScheme(
    "mailto",
    "com.microsoft.Outlook")
print("Result: %d (%s)" % (
    result,
    "Success" if result == 0 else "Error"))
EOF

If you're not sure what the bundle identifier is for your mail app, run osascript -e 'id of app "Some App Name"' to find it. For example, osascript -e 'id of app "Mail"' returns com.apple.mail.


SwiftDefaultApps seems to have superceded RCDefaultApp, which stopped working due to OSX changes, and the domain is down too.

brew install --cask swiftdefaultappsprefpane

If you don't want to install any third-party apps, one solution is to just add a junk mail account:

enter image description here

It will first try to connect for about a minute and fail. But afterwards you can click on "Sign in" again and it will close the accounts dialog, allowing you to change the Preferences.