gmail-sender

Sends Markdown emails with optional attachments via Gmail SMTP using an App Password.

Updated Aug 6, 2026
One-click install
npx skills add https://github.com/vrai/ga_weather_briefing_agentic --skill gmail-sender-vrai
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: gmail-sender
Source: https://github.com/vrai/ga_weather_briefing_agentic/tree/main/skills/gmail-sender
Command: npx skills add https://github.com/vrai/ga_weather_briefing_agentic --skill gmail-sender-vrai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires markdown, and includes scripts (resource) components.

What problem does it solve? Sending a drafted document (such as a weather briefing) as a real email requires manual copy-pasting into a mail client. This Skill automates delivery of any Markdown content as a properly formatted email — plain text plus HTML — with optional file attachments, directly from an AI chat session. ## Core Features & Use Cases - Markdown-to-email conversion: Renders a Markdown body file into both plain-text and HTML parts using the markdown library, preserving formatting like tables and lists. - Attachments and multiple recipients: Attach files (e.g. a fetched F215 chart PDF) and send to one or more recipients in a single call. - Safe dry-run mode: Build the message and print a JSON summary without sending, so drafts can be reviewed before any real email goes out. - Use Case: After assembling a GA weather briefing in Markdown, email it to yourself and a co-pilot with the F215 chart attached, all without leaving the chat. ## Quick Start Ask the AI to email the assembled briefing Markdown file to your address with the subject "GA Weather Briefing", using a dry run first to review the draft.

Frequently Asked Questions about gmail-sender

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email with a Markdown body via Gmail SMTP in Python?▼

Run the send_email.py script with --to, --subject, and --body-file pointing to a Markdown file. The script converts the Markdown to HTML with the markdown library and sends both plain-text and HTML parts through smtp.gmail.com over SSL.

How do I email file attachments from a Python script?▼

Pass one or more file paths with the --attachment flag. Each file is read, its MIME type guessed from the filename, and attached to the message; missing files cause a clear error exit before anything is sent.

Why does Gmail SMTP login fail with my normal password?▼

Gmail requires an App Password, not the account password or an OAuth token, for SMTP access. Enable 2-Step Verification on the Google account, then generate an App Password at myaccount.google.com/apppasswords and set it as GMAIL_APP_PASSWORD.

Can I preview the email before actually sending it?▼

Yes, use the --dry-run flag. It builds the message and prints a JSON summary with sender, recipients, subject, body length, and attachment list without contacting the SMTP server.

Does this work with email providers other than Gmail?▼

No, it is Gmail-specific, hardcoded to smtp.gmail.com on port 465 with SSL. It is not a general multi-provider email abstraction, so other providers would require modifying the script.