99

I'm on OS X el Capitan (10.11.6).

I use Outlook to access my email and would like outlook to be the default mail application. All the instructions I find online suggest that I should open mail and choose "Mail -> Preferences" to set the default mail app.

Unfortunately, Preferences is greyed out until an account is added. I don't have another account that I want to add to my Mac.

Add Mail Account

How can I set the default mail client to Outlook without adding an account to the mail client?

pkamb
  • 8,791
  • 4
    While not a good solution, I did find this: http://osxdaily.com/2014/05/06/change-default-mail-app-mac/#comment-745047. You just make up a fake account and try until it finally gives up. Even after this I found that the mail app would sometimes revert back to Mail... – Daniel Watrous Nov 21 '16 at 21:21

11 Answers11

55

Update: Seems like Microsoft finally removed this tool. The suggested solution in their support documentation is

https://support.microsoft.com/en-us/office/set-an-account-as-the-default-in-outlook-for-mac-1a085d36-db97-4230-9a40-c332364426e0

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

  • I get a 404 from this URL now – Michael R May 20 '22 at 21:41
  • 1
    Seems like Microsoft has finally removed it.. :( I'll edit the answer – Claes Mogren Jun 02 '22 at 17:47
  • These steps only work if you've already setup a Mail account. I haven't, and would prefer not to get Mail crufted up with an account I have no intention of using.

    Frustrated at the Mac ... what's so hard with a 'default apps' icon in the control panel, er, system settings?

    – J. Gwinner Oct 03 '23 at 21:45
34

Pre-Catalina
The simplest way to do this - which doesn't involve messing with Mail itself - is the old faithful RCDefaultApp

Post-Catalina
RCDefaultApp no longer works on modern macOS.
The new kid on the block is SwiftDefaultApps

This Preference pane is chiefly intended to be a modern replacement for the amazing RCDefaultApp developed way back when by Carl Lindberg, which stopped working in 10.12 due to deprecation of ObjC Garbage collection.

enter image description here

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


Old version, for pre-Catalina...

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 ;-)

Tetsujin
  • 115,663
22

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.

fpotter
  • 321
  • 3
    Works fine on Mojave. – postrational May 15 '19 at 11:18
  • 1
    I like this the best because (a) it does not require installing any additional software, and (b) I tend to like any solutions that use Python :-D – Steve Dec 09 '20 at 18:21
  • Is there not a simple system properties text file somewhere we can just open in whatever editor for this? I get using an official api is nice, but I figure it's just serialized down to a simple utf8 key-value string in some file... – ArtOfWarfare Jun 08 '21 at 14:55
  • Thanks! Works to set Mimestream with com.mimestream.Mimestream. – James Sep 01 '22 at 05:03
  • 1
    No longer works on MacOS 12.0+. LSSetDefaultHandlerForURLScheme was deprecated & removed. https://developer.apple.com/documentation/coreservices/1447760-lssetdefaulthandlerforurlscheme – AnthonyW Feb 17 '23 at 01:29
21

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.

JonathanReez
  • 2,072
  • 8
    In my opinion this is the easiest/best answer. I was able to add the account, access the preferences menu, and then delete the account without using a true email, downloading any third party apps, or messing with the command line or settings. – Billy Jan 15 '22 at 21:34
  • 6
    Outrageous the hoops we need to jump through to get access to what should be a simple system preference. – Alexander Nied Sep 21 '22 at 14:14
  • I heartily agree with both of you. Can't upvote this enough. I'd gripe about the capabilities and ease of use of Mac software, but I'm not wearing my fire proof gear. – J. Gwinner Oct 06 '23 at 21:06
14

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

brew install --cask swiftdefaultappsprefpane
userJT
  • 246
3

The easiest solution is to use MSFT Mail Changer app for Mac.

You can download it from the page at this link.

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

Just download the .app file, no install, it gives you a list of registered mail clients, you pick one and done.

My company security (JAMF policy) blocks access to even open apple mail but didn't make this change so none of the share file commands from Word, Excel, or PPT would work. This app does the trick.

2

Sometimes, even after setting Outlook as default mail client in Apple Mail - with an account you remove afterwards - (how could Apple ever think this is a good place to stick this setting) it does not stick.

Just to be sure, after setting the pref in Mail, run this through Terminal:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/\
  LaunchServices.framework/Versions/A/Support/lsregister -kill -r -all local,system,user
grg
  • 201,078
  • 3
    Honestly, putting the setting there seems like an evil monopoly move to me... force people to setup the macOS Mail client before they're allowed to actually switch to using another mail client. It'd be like if Safari, Internet Explorer, or Edge required you to sign into some accounts, give it some credentials, and set up some bookmarks and a homepage before it would let you set Chrome or Firefox as the default browser. If using native mail clients on a computer wasn't so odd (everyone just uses gmail or other webmail it seems), we'd see antitrust lawsuits over this... – ArtOfWarfare Jun 08 '21 at 14:50
  • @ArtOfWarfare It's so true - if Microsoft did this, they'd be in court. – J. Gwinner Oct 03 '23 at 22:29
2

I know it's an old question, but I needed to do the same, possibly from command-line, and I found a solution.

You will need Homebrew, which can be installed with:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then, you will need duti, which is available through Brew:

brew install duti

Now, we need to find out the name of the mail application you want to set as default, we can do that running the following command (change Airmail with your desired mail client):

mdls -name kMDItemCFBundleIdentifier -r /Applications/Airmail\ 3.app
# this will return "it.bloop.airmail2"

Now, we can set our desired app as default mail client with:

duti -s it.bloop.airmail2 mailto

That's it!

2

This answer works without any third party software. Solution tested on MacOS 12.6.1.

Place the code below in a Swift file. Replace the mailApp url with the path to your preferred mail application.

// DefaultMailSwitcher.swift
import Cocoa
let mailApp = URL(fileURLWithPath: "/Applications/Microsoft Outlook.app")
NSWorkspace.shared.setDefaultApplication(at: mailApp, toOpenURLsWithScheme: "mailto")

Then run from terminal with administrative privileges, without admin the command will silently fail even with a closure.

$ sudo swift DefaultMailSwitcher.swift

Confirm programmatically by running the code below from another swift file or clicking a "mailto" link.

print("After: ",NSWorkspace.shared.urlForApplication(toOpen: URL(string: "mailto:me@example.com")!))
AnthonyW
  • 121
  • 4
1

This was funky for me, but I had to modify a code block noted above. Steps I had to take to make this work (hoping it helps someone)

  1. Open Terminal

  2. Install launchservices newest module

  3. Switch to Python (this is for 3+ due to launch services being I had to modify for CoreServices)

    import CoreServices;
    result = CoreServices.LSSetDefaultHandlerForURLScheme(
        "mailto",
        "com.microsoft.Outlook")
    print("Result: %d (%s)" % (
        result,
        "Success" if result == 0 else "Error"))
    EOF```
    

  4. Reboot

  5. Open Mail.app and use all my Exchange info (tried using a bogus email/comp but it still tries to auth even when you use an "other mail option")

  6. In Preferences > General tab there's a default mail client, update to Outlook.
    (I tested mailto on the Mail app to ensure it registered. When it did I went ahead and swapped to Outlook)

  7. Test mailto

agarza
  • 2,274
RenMG
  • 11
-3

Sometimes the easiest solutions stare us in the face and it's easy to overlook them. I get asked this regularly and the easiest way to do this is to just set up Apple Mail with your email account and then change the default email application to Outlook.

You don't have to use Apple Mail again after that. So, while you're technically still adding an account to Mail, you don't have to use it, or you can remove it after you've set the default to Outlook.

EDIT

I just wanted to add that in some cases, certain Apple software (e.g. Photos) have their own settings for which email client to use when sharing content. So you will need to select Outlook as the default within these Apps as well if you want to share content via email.

Monomeeth
  • 64,558
  • 12
    This doesn't answer the question since it requires adding an account. What I would like to know is where the internal setting is in OSX to get control over this without the requirement of adding an account. BTW, my comment explains how to do the same thing without needing a "real" account. – Daniel Watrous Nov 21 '16 at 22:01
  • Ah, I didn't pick up on your comment while adding my answer. For future reference it's better to edit your question to provide additional context, rather than adding a comment. I do realise you asked how to change the default without adding an account to the mail client, hence my answer stating you didn't have to use Mail afterwards (or even keep the account in it) after changing the default. Now that I've read your comment, is the reason you're asking this because you're having trouble making sure the change 'sticks' by using this option? If so there is a potential fix for this. – Monomeeth Nov 21 '16 at 22:37
  • 1
    It also won't let you add an account without downloading all your email. Because of the way Mail treats labels (as folders) it would take about 100 GB to retrieve my email. – Sherwood Botsford Oct 30 '20 at 19:03
  • @Monomeeth SExch can be brutal. I didn't downvote you, but wanted to agree with Sherwood that adding an account just to delete it for some people may not be workable due to the size of some mail accounts. – J. Gwinner Oct 06 '23 at 21:08