Fix VBA Email Appears in Sent Items But Is Not Delivered
Question details
Outlook messages generated and sent via a VBA script are not reaching the recipients, despite appearing in the Sent Items folder or getting stuck in the Outbox.

- Product
- Microsoft Outlook
- Device & OS
- not provided
- Scenario
- Automating email dispatch using VBA macros, where the script successfully processes the code but the emails fail to actually leave the local network.
- Observed behavior
- The VBA code executes without error, and emails move to the Outbox or Sent Items, but they are never actually delivered to the recipient addresses because Outlook was started in the background.
Ensure your computer has an active internet connection and verify that the recipient email addresses defined in your VBA script are valid and properly formatted.
Ensure Outlook is Running Before Executing VBA
Keep the Outlook application open and running in the foreground before triggering your VBA macro to prevent messages from stalling in the Outbox.
When a VBA script initiates an email but Outlook is closed, the script forces Outlook to run as a background process. Background instances of Outlook often do not trigger the automatic Send/Receive protocols, causing emails to get stuck in the Outbox indefinitely.
Launch Microsoft Outlook from your desktop, taskbar, or Start menu.
Look at the bottom right corner of the Outlook window to ensure it says 'Connected' or 'Connected to: Microsoft Exchange'.
Return to your source application (such as Excel or Access) and run your VBA macro.
Go back to Outlook and check the Outbox folder. It should be empty, confirming that the emails have been actively delivered to the server.

Modify VBA Code to Force Send/Receive
Add a specific command to your VBA macro that forces Outlook to sync its folders and push out pending emails immediately.
Try WPS Office for Seamless Macro Execution and Office Tasks
If you frequently encounter automation limitations or background process issues with Microsoft Office, consider switching to WPS Office. It provides a highly compatible, lightweight environment for your documents, spreadsheets, and macros.
- 1. Download the Installer: Visit the official WPS Office website and click the Free Download button.
- 2. Install the Software: Run the downloaded installer and follow the on-screen prompts to set up the software.
- 3. Open Your Macro Files: Launch WPS Spreadsheet and open your existing macro-enabled files to continue your work without interruption.

Frequently Asked Questions
Why do my VBA emails get stuck in the Outlook Outbox?
This usually happens when the VBA macro initiates an invisible, background instance of Outlook. Without the full application interface running, Outlook's automatic send/receive process isn't triggered, leaving emails queued in the Outbox.
Does using '.Display' instead of '.Send' fix the VBA email delivery issue?
Yes, changing '.Send' to '.Display' in your VBA code forces the email window to appear on the screen. You can then click 'Send' manually, which bypasses the Outbox queue issue, though this method requires manual user interaction for every email generated.
How can I check if Outlook is running using VBA before sending an email?
You can use the 'GetObject(, "Outlook.Application")' function in your VBA script. If this function throws an error (Error 429), it means Outlook is not currently running, allowing you to display a message box prompting the user to open Outlook first.




