一键导入
email-manager
Read, search, and send emails from your agent via IMAP and SMTP.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read, search, and send emails from your agent via IMAP and SMTP.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI Agent Marketplace for OpenClaw. Browse and discover 60+ free & premium agents — developer tools, content, automation, video, research, and more.
Network-wide ad and tracker blocking at the DNS level. A Pi-hole alternative that runs directly on your machine as an OpenClaw skill. No separate h...
agentplace's autonomous marketing experiments. Use when agentplace wants to try new content, test hooks, track what works, and iterate independently. Covers X posting, TikTok experimentation, and growth tracking.
Generates clean API documentation from code, endpoints, or descriptions — OpenAPI, markdown, or README format
Generates mock API responses with realistic fake data from OpenAPI specs or plain descriptions
Generates professional system architecture diagrams (Mermaid flowcharts, sequence diagrams, C4 models, deployment views) and Architecture Decision Records from plain English descriptions
| name | email-manager |
| description | Read, search, and send emails from your agent via IMAP and SMTP. |
Read, search, and send emails from your agent via IMAP and SMTP.
Category: communication, productivity API Key Required: Yes (email credentials or app password)
Full email access: check your inbox, read messages, search by sender/subject/date, send replies, compose new emails, and get daily summaries. Works with Gmail, Outlook, Yahoo, iCloud, and any IMAP/SMTP provider.
imap.gmail.com:993 / SMTP: smtp.gmail.com:587outlook.office365.com:993 / SMTP: smtp.office365.com:587imap.mail.me.com:993 / SMTP: smtp.mail.me.com:587Store credentials:
EMAIL_ADDRESS=you@gmail.com
EMAIL_PASSWORD=app_password_here
IMAP_SERVER=imap.gmail.com
SMTP_SERVER=smtp.gmail.com
pip3 install imapclient
python3 -c "
from imapclient import IMAPClient
server = IMAPClient('$IMAP_SERVER', ssl=True)
server.login('$EMAIL_ADDRESS', '$EMAIL_PASSWORD')
server.select_folder('INBOX')
messages = server.search(['ALL'])[-10:]
for uid, data in server.fetch(messages, ['ENVELOPE']).items():
env = data[b'ENVELOPE']
frm = env.from_[0] if env.from_ else None
sender = f'{frm.mailbox.decode()}@{frm.host.decode()}' if frm else 'unknown'
subject = env.subject.decode() if env.subject else '(no subject)'
date = env.date.strftime('%Y-%m-%d %H:%M') if env.date else ''
print(f'{date:20s} {sender:30s} {subject}')
server.logout()
"
python3 -c "
from imapclient import IMAPClient
import email
from email.header import decode_header
server = IMAPClient('$IMAP_SERVER', ssl=True)
server.login('$EMAIL_ADDRESS', '$EMAIL_PASSWORD')
server.select_folder('INBOX')
messages = server.search(['ALL'])
uid = messages[-1] # latest message, change index as needed
raw = server.fetch([uid], ['RFC822'])[uid][b'RFC822']
msg = email.message_from_bytes(raw)
subject = str(decode_header(msg['Subject'])[0][0], 'utf-8') if isinstance(decode_header(msg['Subject'])[0][0], bytes) else decode_header(msg['Subject'])[0][0]
print(f'From: {msg[\"From\"]}')
print(f'Subject: {subject}')
print(f'Date: {msg[\"Date\"]}')
print('---')
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == 'text/plain':
print(part.get_payload(decode=True).decode('utf-8', errors='replace'))
break
else:
print(msg.get_payload(decode=True).decode('utf-8', errors='replace'))
server.logout()
"
python3 -c "
from imapclient import IMAPClient
server = IMAPClient('$IMAP_SERVER', ssl=True)
server.login('$EMAIL_ADDRESS', '$EMAIL_PASSWORD')
server.select_folder('INBOX')
# Search by subject
messages = server.search(['SUBJECT', 'invoice'])
# Other searches: ['FROM', 'name@example.com'], ['SINCE', '20-Feb-2026'], ['UNSEEN']
for uid, data in server.fetch(messages[-10:], ['ENVELOPE']).items():
env = data[b'ENVELOPE']
frm = env.from_[0] if env.from_ else None
sender = f'{frm.mailbox.decode()}@{frm.host.decode()}' if frm else 'unknown'
subject = env.subject.decode() if env.subject else '(no subject)'
print(f'{sender:30s} {subject}')
server.logout()
"
python3 -c "
from imapclient import IMAPClient
server = IMAPClient('$IMAP_SERVER', ssl=True)
server.login('$EMAIL_ADDRESS', '$EMAIL_PASSWORD')
server.select_folder('INBOX')
unseen = server.search(['UNSEEN'])
print(f'{len(unseen)} unread emails')
server.logout()
"
python3 -c "
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
msg = MIMEMultipart()
msg['From'] = '$EMAIL_ADDRESS'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Subject here'
msg.attach(MIMEText('Email body text here', 'plain'))
with smtplib.SMTP('$SMTP_SERVER', 587) as server:
server.starttls()
server.login('$EMAIL_ADDRESS', '$EMAIL_PASSWORD')
server.send_message(msg)
print('Email sent!')
"
User: "Check my email" → List last 10 emails with sender, subject, date
User: "Any emails from Amazon?" → Search FROM 'amazon', list results
User: "Read the latest email" → Fetch and display the newest message body
User: "How many unread emails do I have?" → Search UNSEEN, report count
User: "Reply to that email saying I'll be there at 3pm" → Compose reply to the last read email