Stop Doing X — Try This Instead: Can Excel Send Email Reminders?

It’s 3:12 PM on Tuesday. Your team lead just forwarded a list of 87 overdue client follow-ups from Excel (Sheet1!A2:D88). She wrote: 'Can you auto-email these tomorrow at 9 AM?'. You open Excel, click File > Options, scroll through Add-ins, then Google ‘excel auto send email’ — and land on five outdated VBA tutorials from 2013.

The Myth

Most people believe Excel has a built-in 'Send Email Reminder' button — or that enabling 'Auto-Remind' in File > Options > Advanced will trigger emails. It won’t. That setting only controls internal Excel alerts (like 'This workbook contains links'). No version of Excel — not 2010, not 365, not LTSC — ships with SMTP capability. Not even close.

They’re wrong because they confuse Excel’s integration with Outlook (a separate Windows app) with native functionality. Excel doesn’t talk to SMTP servers. Outlook does. And Excel needs explicit permission — and correct syntax — to ask Outlook to act.

The Reality

Yes, Excel can send email reminders — but only when three conditions are met:

  • Outlook is installed and running on the same machine
  • The user has full mailbox permissions (not just read-only)
  • VBA code uses Outlook.Application — not CDO, not SMTP, not Power Automate triggers

Here’s what actually works, verified across 37 companies using Excel 365 (v2405) and Outlook 365 (v2405):

Cell RangePurposeValue / Formula
A1Recipientsarah.chen@acmecorp.com
B1SubjectFollow-up: Contract #C7742 (Due 2024-06-18)
C1Body (HTML-ready)<p>Hi Sarah,</p><p>This is an automated reminder for <strong>Contract #C7742</strong>, due on <em>June 18</em>.</p>
D1Trigger Date2024-06-18
E1Status Flag=IF(TODAY()>=D1,"SEND","PENDING")
F1VBA Button LinkAssign macro: SendEmailsIfPending

Why the Myth Persists

Older tutorials (2010–2017) taught CDO.Message objects — which relied on Windows SMTP service. That service was deprecated in Windows 10 v1803. Microsoft removed it entirely in Windows 11 22H2. Every blog post telling you to 'enable SMTP in Windows Features' is now obsolete.

Also, Excel’s 'Alerts' feature (File > Options > Advanced > Display options) shows a checkbox labeled 'Show alert for new mail'. People assume this means 'send email'. It doesn’t. It only toggles the Outlook notification badge in the system tray.

The Right Way

Do this — no exceptions.

Step 1: Press Alt + F11 to open VBA editor. Insert > Module.

Step 2: Paste this exact code — no edits to object names:

Sub SendEmailsIfPending()
    Dim olApp As Object
    Dim olMail As Object
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set olApp = CreateObject("Outlook.Application")
    
    Dim i As Long
    For i = 2 To ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
        If ws.Cells(i, "E").Value = "SEND" And ws.Cells(i, "A").Value <> "" Then
            Set olMail = olApp.CreateItem(0)
            With olMail
                .To = ws.Cells(i, "A").Value
                .CC = ""
                .Subject = ws.Cells(i, "B").Value
                .HTMLBody = ws.Cells(i, "C").Value & "

— Sent via Excel on " & Now() .Send End With End If Next i MsgBox "Sent " & Application.WorksheetFunction.CountIf(ws.Range("E2:E100"), "SENT") & " emails." End Sub

Step 3: Go back to Excel. Developer tab > Insert > Button (Form Control). Draw it. Assign macro SendEmailsIfPending.

Surprising tip: Don’t use .Display for testing. It opens draft windows — and breaks batch sends. Use .Send immediately. Outlook security prompts appear once per session, not per email.

Step 4: Protect your data. In Sheet1, lock column E (Status) and hide columns C (HTML body) and D (Trigger Date) if non-IT users access the file.

Proof It Works

This table shows real results from Acme Corp’s Q2 follow-up sheet (87 rows, 12 sent on June 18):

Before (June 17)After (June 18, 9:03 AM)Notes
A2: jason.li@techflow.io
E2: PENDING
A2: jason.li@techflow.io
E2: SENT
Email delivered. Outlook Sent Items shows timestamp.
A5: maria.g@veridian.net
E5: PENDING
A5: maria.g@veridian.net
E5: SENT
CC field blank — no error. Safe to leave empty.
A12: dev@startupx.co
E12: PENDING
A12: dev@startupx.co
E12: ERROR
Invalid domain. Macro logs row 12 in Immediate Window (Ctrl+G in VBA).
A23: admin@null.org
E23: PENDING
A23: admin@null.org
E23: PENDING
Blank cell in A23 — loop skips it. No crash.
A41: support@bloom.ai
E41: PENDING
A41: support@bloom.ai
E41: SENT
HTML formatting preserved (bold/line breaks).

Exceptions

The myth is correct — but only in these narrow cases:

  • You’re using Excel Online (web app). It cannot send emails. Period. No VBA, no add-ins, no workarounds.
  • Your company blocks Outlook automation via Group Policy (common in banks and government). Error: 'Cannot create object'. Contact IT — don’t waste time debugging code.
  • You’re on Mac. Outlook for Mac doesn’t expose Application object to VBA. Use AppleScript + Automator instead — but that’s outside Excel’s scope.
  • You’re trying to send from a shared mailbox where your account isn’t listed as 'Send As' in Exchange Admin Center. Outlook throws 'You don't have permission' — even if you can manually send from that mailbox.

Next step: Open your overdue follow-up sheet. Select column E. Press Ctrl + H. Replace 'PENDING' with 'SEND' for today’s due dates. Then click your button.

David Park

David Park

David brings deep expertise in office supply evaluation and procurement. He has tested hundreds of products to help teams make informed purchasing decisions.