š„Sending Email from Claude Code with Zero Dependenciesš„
aka, curl, awk, and an email walk into a bar
This blog series focuses on presenting complex DevOps projects as simple and approachable via plain language and lots of pictures. If you find these useful, please consider subscribing. Itās what keeps these articles coming. <3
Hey all! Iāve been building an agentic email bot on AWS Bedrock AgentCore that reads and replies to emails autonomously. I wrote up that whole series:
Part 1: Full Architecture and O365 Integration - EventBridge polling, Graph API delta queries, and handing off to AgentCore
Part 2: Building the Thread, Sending the Reply - Conversation context, email-safe HTML rendering, and production operations
While building it, I wired up Microsoft Graph API for O365 access so I could have my Claude Agent test and verify changes during development. That Graph integration became the foundation for something more immediately useful: a Claude Code skill that lets you send email directly from a conversation.
Later, in a Slack channel dedicated to using AI, someone asked if anyone had a solution to allow Claude Code to send emails, specifically for automations like emailing reports on a schedule. So I pulled it out, made it portable, and published it to our internal plugin marketplace.
There are a lot of good reasons to want this. You might be testing email-related functionality, like I was, or you want to say āemail Sarah and update her on our progress with this projectā and have Claude just handle it in context. Or youāre running scheduled jobs and need Claude to fire off a notification or send a report when something completes. Once you have it, you find uses for it constantly. (I also use the email access in general to leverage Claude in a custom daily review process to help me stay on top of tasks and such, but thatās a story for another blog post.)
The idea sounds simple enough. The implementation had some genuinely interesting constraints that made it worth writing up.



