Is it Possible to Undo Send in Apple Mail

Hi all, I'm interested in creating a macro that will delay sending a message in Apple Mail by a few seconds, so that I can undo sending it if I realize I forgot something (this is something that Mailbutler does, but I don't use any of its other features so it's not worth $100/year just for this).

It's hard for me to think about how to start experimenting with this, and was curious if any suggestions came to mind. Ideally the workflow would be:

  1. Type an e-mail and press send
  2. If, in the next 15 seconds, I press a keystroke (say, ⌃Z), the message will get reopened in draft form and not sent.
  3. If 15 seconds pass, the message is sent.

Any suggestions would be great!


Spark has this feature. Not sure has it or not. If not, you probably need to make a macro that has a pause before triggering the send command for

Why is Spark a perfect email app for Gmail or Outlook? Well, for starters, Spark gives you a whole lot of options to fix your mistakes when working with email. Spark goes way beyond offering just an undo send option for email — it lets you undo several different types of actions. Every time you send an email, pin, move, archive, delete, or mark it as read, Spark allows you to undo your last email action. Just click on Undo or hit Command + Z and your last action is automatically reversed.

I read from another place that we can undo the send action in 5s in Spark. I have not found a place to customize the duration. This could be a feature request to the developer of Spark.

Hi @tedsvo, the "Undo Send" feature in Mailbutler is included in the free Essential Plan. So you wouldn't have to pay for it.

Disadvantage is of course the watermark of Mailbutler

I use Mailbutler Professional myself, but only because I was lucky enough to get a lifetime version for $36 through StackSozial.
Otherwise the service would be too expensive for me.

Hey Teddy,

Keyboard Maestro cannot do this in a way that isn't quite cumbersome.

There is no way to hook into Mail and intercept all the ways you can send an email – you have to have a Mail plug-in that “hacks” Mail's behavior for that.

And the method you'd have to use to send unsent mail would also be cumbersome and difficult to do in bombproof fashion.


Beyond my AppleScript skills,*** but I'm wondering if Keyboard Maestro could have a macro using the standard Command-Shift-D shortcut for sending a message that instead Executes an AppleScript which

  1. targets the frontmost Mail window (the message);
  2. activates a specified delay; then
  3. sends the message after the delay, or
  4. displays a prompt to confirm sending immediately or canceling the macro.

If #3, that would certainly necessitate the user also having a macro to cancel all running macros.

***You, ccstone, are astoundingly better with AppleScript than I am, but this is not to suggest you develop such a script, rather more of a strategy being thrown out for consideration as to how this task might be accomplished.

Can this be done?



You are restricted in the methods you use to send, and if you forget to use the hotkey trigger you're s.o.l.

You have to save the Messge-ID of each message to be sent later, because there's no telling what mess will be in your Drafts folder.

Then when sending – each individual message will have to be opened and sent – because there's no way to mass-send a set of outgoing messages.

So. It's a fragile system, and it's a bit complicated.

Since the free version of MailButler provides the wanted feature, I think it would probably be the way to go.

I don't like the send-later function, because I've seen cases where it fouled up the delivery of essential emails. But that was long ago, and MailButler may be pretty bombproof.

I use Mail Act-On from SmallCubed Software. It has a delay-send function, but I never make use of it.


Thanks very much all! I'm going to try Mail Act-On - it's more affordable for this feature and doesn't add a signature to the end of every message.

1 Like