web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Automate sending email...
Power Automate
Suggested Answer

Automate sending email from draft folder

(1) ShareShare
ReportReport
Posted on by 9
Hello,
I am completely new to Power Automate, so thanks for your patience and your help!
 
I am trying to build a flow that will send a batch of emails sitting in my drafts folder, with a delay between each. 
 
What I have is: 
 
-Manual Trigger
-Get emails (V3) (specifying folder and top 100)
-Apply to each (dynamic input from previous step: body/value)
--Send an email (V2) (dynamic input for To, Subject, and Body)
--Delay (1 minute)
 
When I run it, no emails are sent.
 
Thanks for any help for advice!!
Categories:
I have the same question (0)
  • Sunil Kumar Pashikanti Profile Picture
    2,103 Moderator on at
     
    It’s a common point of confusion, but you’ve actually hit a known limitation of the Outlook connector. Even though your flow is finishing with a "Success" status, it isn't actually "sending" the draft.
     
    The Problem: Why it’s failing
    The Send an email (V2) action is designed to create and send a new message from scratch. It does not have a parameter to accept a Message ID, so it cannot "pick up" an existing draft and push it out of your mailbox. When you run your current flow, it likely creates a new blank email or simply ignores the draft object because the connector doesn't see it as a valid input for a new message.
     
    The Solution: Use Drafts as Templates
    The most reliable way to handle this without needing complex Graph API calls is to treat your Draft as a data source. You extract the content and send a "copy."
     
    Follow these steps to fix your flow:
    Get Emails (V3): Set the Folder to Drafts.
    Apply to Each: Use the value from the step above.
    Inside the Loop:
         Add Send an email (V2).
    To: Enter your recipient (or map it from the draft if the field is populated).
    Subject: Select Subject from the Dynamic Content (from the Get Emails step).
    Body: Select Body. Important: Click "Switch to HTML view" (the </> icon) if you see it, and ensure the Is HTML setting is set to Yes.
    Add a Move/Delete Step: After the email is sent, add a Delete email (V2) or Move email (V2) action using the Message ID. If you don't do this, the flow will send a duplicate of the same draft the next time it runs!
    Handle Throttle/Delays:
    If you have a Delay action inside your loop, you must go to the Apply to Each Settings.
    Turn Concurrency Control to On.
    Set the Degree of Parallelism to 1. This ensures the flow processes one email at a time and respects your delay.
     
    Advanced option
    If you truly need to send the actual draft message (same message ID), this is only possible using Microsoft Graph API:
    POST /me/messages/{id}/send
    This requires:
         HTTP action
         App registration
         Delegated Graph permissions (Mail.Send, Mail.ReadWrite)
    This approach is more complex and usually not recommended for beginners.
     
    Summary
    Your flow logic is fine ✅
    Outlook connector cannot send Drafts directly ❌
    Copy draft content → send a new email ✅
    Disable concurrency so delays work ✅
    Once you treat Drafts as templates, your flow will work as expected.
     
    ✅ If this answer helped resolve your issue, please mark it as Accepted so it can help others with the same problem.
    👍 Feel free to Like the post if you found it useful.

    Sunil Kumar Pashikanti, Moderator
    Blog: https://sunilpashikanti.com/posts/
  • KJ-22041909-0 Profile Picture
    9 on at
    The suggested solution is not helpful. 
     
     says: "The Send an email (V2) action is designed to create and send a new message from scratch. It does not have a parameter to accept a Message ID, so it cannot "pick up" an existing draft and push it out of your mailbox. "  
     
    But then Sunil uses Send an email (V2) in the suggested flow. 
     
    The suggested build is only different from what I have in now in that it deletes the old draft and how it pauses, but the suggested actions for sending are the same as what I have and are still not working. 
     
    Any guidance welcome!
  • Sunil Kumar Pashikanti Profile Picture
    2,103 Moderator on at
     
    I see where the confusion is coming from. To be very clear, Power Automate cannot send a draft email directly. There is no action that sends an existing draft using its message ID.

    The bottom line is this: the draft is not being sent. The flow is copying the content from the draft and sending that copied content as a brand new email.
     
    In this pattern, the draft is used only as a template. The flow reads the subject and body from the Drafts folder, then Send an email (V2) creates a new email with the same content and sends that new message. That’s why the send action looks the same as what you already have, even though the draft itself is never sent.

    The delete or move step is important. If the draft stays in the Drafts folder, the flow will pick it up again and resend the same content the next time it runs.

    If it’s still not working, I would double‑check a few things:
    • Make sure Is HTML is set to Yes when mapping the Body
    • Confirm both Get emails and Send an email are using the same mailbox
    • Verify the draft is actually being removed or moved after the send completes
    Unfortunately, sending a draft email directly is not supported today unless you use the Microsoft Graph API.
  • CU30121719-0 Profile Picture
    on at
     
    in fact,  PowerAutomate can send a draft email  directly using a GRAPH request.
  • sumit_artesian Profile Picture
    261 on at
    Funny how one of the moderators on this forum is actively posting AI-generated sloppy answers without even tagging the responses as AI-assisted. 
  • Sunil Kumar Pashikanti Profile Picture
    2,103 Moderator on at

    To clarify, I explicitly called out Microsoft Graph as the only way to send an existing draft message using the same message ID. That option requires an HTTP action, app registration, and delegated permissions, which is why the sample here focuses on the supported Outlook connector pattern.

    To avoid any further ambiguity, I’ve documented the pattern end‑to‑end and published a reusable reference implementation:

    Blog walkthrough (with screenshots and execution history):
    Power Automate: How to Process and Forward Emails with Delay (Step‑by‑Step Guide)

    GitHub repository (unmanaged solution + screenshots):
    https://github.com/spashikanti/power-automate-forward-email-delay-pattern

    The flow was built and tested in a personal tenant. Feedback or improvements are welcome.

  • KJ-22041909-0 Profile Picture
    9 on at
    I don't care whether it sends a draft versus a new email. That is not the point. The point is that NOTHING is being sent. 
     
    The answers by the moderator are AI slop.
  • Suggested answer
    sumit_artesian Profile Picture
    261 on at
     
    This is really strange. I rebuilt your exact flow, but I could not reproduce your issue. It seemed to work as expected on my end. 
     
    You mentioned nothing is being sent when you run the flow. Could you please confirm the status of your flow runs after you trigger them? Do they succeed despite nothing being sent? Do they fail? Or do they not trigger at all?
     
    Your flow logic seems correct, which suggests your issue may not be due to how your flow is configured but rather a deeper, permission/privilege issue. One possible cause could be expired connection references, but in that case, your flow runs would fail, and you would see a clear error message. You may also lack permissions in the environment to run and execute flows.
     
    I'd suggest recreating the flow in a new environment that you created and trying to execute it there. If everything works as expected, the issue is likely a deeper environment-level issue, likely missing permission/privilege.
     
    As a reference, I am attaching screenshots of my actions. Maybe you could compare my flow with yours and see if anything is different that might be causing the issues.
     
    Overall flow:
     
    Get emails (V3):
    Note: Ensure Only with Attachments is set as No; otherwise, it won't consider drafts that do not have an attachment. You must have configured the Folder accordingly. Also, please ensure Fetch-Only Unread Messages is set to No as well.
     
    Send an email (V2):
     
    Please  Does this answer your question if my post helped you solve your issue. This will help others find it more readily. It also closes the item.
    If the content was useful in other ways, please consider answering Yes to Was this reply helpful? or give it a Like! 🩷
  • CU30121719-0 Profile Picture
    on at
    To clarify, I explicitly called out Microsoft Graph as the only way to send an existing draft message using the same message ID. That option requires an HTTP action, app registration, and delegated permissions, which is why the sample here focuses on the supported Outlook connector pattern.
    No - that option does not require an app registration.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Valantis Profile Picture

Valantis 389

#2
Vish WR Profile Picture

Vish WR 331

#3
David_MA Profile Picture

David_MA 298 Super User 2026 Season 1

Last 30 days Overall leaderboard