AgentSkillsCN

Skill

技能

SKILL.md

Evernote Email Skill

An AI Agent skill that enables sending emails via MailJet to create notes in Evernote using Evernote's email-to-note functionality.

Skill Metadata

  • Skill Type: Email Integration
  • Category: Productivity, Note-taking
  • APIs Used: MailJet REST API (Python standard library)
  • Dependencies: None (uses Python standard library only)
  • Authentication Required: Yes (MailJet API keys, Evernote email)

Description

This skill allows AI agents to create Evernote notes by sending emails through the MailJet service. It leverages Evernote's email-to-note functionality, where users can email to their unique Evernote address to automatically create notes.

Core Functions

EvernoteEmailSkill(config)

Initialize the skill with MailJet credentials and Evernote email address.

Parameters:

  • api_key: MailJet API key (optional, uses MJ_APIKEY_PUBLIC env var)
  • api_secret: MailJet API secret (optional, uses MJ_APIKEY_PRIVATE env var)
  • evernote_email: Evernote email address (optional, uses EVERNOTE_EMAIL env var)

Important: API v3.1 does not support per-message tracking control. Configure tracking in MailJet dashboard.

create_quick_note(title, body, **kwargs)

Create a simple note with optional parameters.

  • Parameters: title (string), body (string), notebook (string), tags (list), reminder (string)
  • Returns: Success status and API response

send_to_evernote(content, sender_email, sender_name=None)

Send a formatted email content object to Evernote.

  • Parameters: content (EmailContent), sender_email (string), sender_name (string, optional)
  • Returns: MailJet API response

format_subject_line(content)

Format subject line with Evernote special syntax (@notebook, #tags, !reminder).

Configuration

Required environment variables:

  • MJ_APIKEY_PUBLIC: MailJet API public key
  • MJ_APIKEY_PRIVATE: MailJet API private key
  • EVERNOTE_EMAIL: User's unique Evernote email address

Optional configuration:

  • DEFAULT_SENDER_EMAIL: Default sender email
  • DEFAULT_SENDER_NAME: Default sender name

Usage Examples

Basic Note Creation

python
skill = EvernoteEmailSkill()
result = skill.create_quick_note(
    title="Meeting Notes",
    body="Discussed project timeline and deliverables.",
    sender_email="ai-agent@company.com"
)

Advanced Note with Tags and Notebook

python
result = skill.create_quick_note(
    title="Web Development Resources",
    body="Useful links for React development",
    notebook="Development",
    tags=["programming", "react", "resources"]
)

EmailContent Object Usage

python
from evernote_email_skill import EmailContent
content = EmailContent(
    title="Project Update",
    body="Status updates and next steps",
    notebook="Work",
    tags=["project", "updates"],
    reminder="tomorrow"
)
result = skill.send_to_evernote(content, "agent@example.com")

Evernote Syntax Support

The skill supports Evernote's special email syntax:

  • @NotebookName - Specify target notebook
  • #TagName - Add tags (multiple supported)
  • !reminder - Set reminders (today, tomorrow, or specific date)

Example subject: Client Meeting @Work #meetings #important !tomorrow

Error Handling

The skill includes comprehensive error handling for:

  • Missing API credentials
  • Invalid email formats
  • MailJet API errors
  • Network connectivity issues

Returns structured response with success status, error messages, and API response details.

Integration Notes

  • Emails are sent via MailJet API v3.1
  • Supports both text and HTML email content
  • Automatic HTML formatting from text content
  • Rate limiting consideration for bulk operations
  • Compatible with all Evernote account types

Dependencies

  • mailjet-rest>=1.3.0
  • Python 3.7+
  • Valid MailJet account
  • Evernote account with email forwarding enabled

File Structure

  • evernote_email_skill.py - Main skill implementation
  • config.py - Configuration utilities
  • cli.py - Command line interface
  • test_skill.py - Testing and demonstration
  • requirements.txt - Dependencies
  • README.md - Documentation
  • .env.example - Environment variable template
  • config.example.json - JSON configuration template