بنقرة واحدة
email-skill
Professional email management — inbox triage, drafting, sending, and follow-up tracking
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Professional email management — inbox triage, drafting, sending, and follow-up tracking
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Expert knowledge for AI deep research — methodology, source evaluation, search optimization, cross-referencing, synthesis, and citation formats
Expert knowledge for AI video clipping — yt-dlp downloading, whisper transcription, SRT generation, and ffmpeg processing
Expert knowledge for AI intelligence collection — OSINT methodology, entity extraction, knowledge graphs, change detection, and sentiment analysis
Expert knowledge for AI lead generation — web research, enrichment, scoring, deduplication, and report generation
Expert knowledge for AI forecasting — superforecasting principles, signal taxonomy, confidence calibration, reasoning chains, and accuracy tracking
Expert knowledge for AI Twitter/X management — API v2 reference, content strategy, engagement playbook, safety, and performance tracking
| name | email-skill |
| version | 1.0.0 |
| description | Professional email management — inbox triage, drafting, sending, and follow-up tracking |
Every email action has real consequences. Be conservative, always draft before sending, and always preserve context.
Classify every email into one of these buckets:
| Category | Action |
|---|---|
| Action required | Draft reply, notify user |
| FYI only | Read + archive, update knowledge graph |
| Waiting for reply | Check thread age, schedule follow-up |
| Spam/Newsletters | Flag for user, do NOT unsubscribe without approval |
| Financial/Legal | Always escalate to user — never auto-reply |
"Q2 Budget Review — Action Required by Friday""RE: RE: RE: meeting"[ACTION], [FYI], [URGENT], [WAITING][Greeting] — match formality to sender's tone
[Context] — one sentence reference to why you're writing
[Main Point] — the key message, clearly stated
[Action] — one explicit ask or next step with deadline
[Signature]
When draft_mode is ON (default):
import smtplib, os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime
msg = MIMEMultipart('alternative')
msg['From'] = os.environ['SMTP_USER']
msg['To'] = 'TO_ADDRESS'
msg['Subject'] = 'SUBJECT'
msg['Date'] = datetime.now().strftime('%a, %d %b %Y %H:%M:%S +0000')
text_body = 'PLAIN_TEXT_BODY'
html_body = '<p>HTML_BODY</p>'
msg.attach(MIMEText(text_body, 'plain'))
msg.attach(MIMEText(html_body, 'html'))
host = os.environ['SMTP_HOST']
port = int(os.environ.get('SMTP_PORT', '587'))
user = os.environ['SMTP_USER']
pwd = os.environ['SMTP_PASS']
with smtplib.SMTP(host, port) as s:
s.ehlo()
s.starttls()
s.login(user, pwd)
s.send_message(msg)
print(f'Sent to TO_ADDRESS at {datetime.now().isoformat()}')
import imaplib, email, os
from email.header import decode_header
host = os.environ.get('IMAP_HOST', os.environ['SMTP_HOST'])
user = os.environ['SMTP_USER']
pwd = os.environ['SMTP_PASS']
mail = imaplib.IMAP4_SSL(host)
mail.login(user, pwd)
mail.select('INBOX')
# Search unseen
typ, data = mail.search(None, 'UNSEEN')
ids = data[0].split()[-20:] # Last 20 unread
for num in ids:
typ, raw = mail.fetch(num, '(RFC822)')
msg = email.message_from_bytes(raw[0][1])
subject, enc = decode_header(msg['Subject'])[0]
if isinstance(subject, bytes):
subject = subject.decode(enc or 'utf-8')
sender = msg.get('From', '')
date = msg.get('Date', '')
body = ''
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == 'text/plain':
body = part.get_payload(decode=True).decode('utf-8', errors='replace')
break
else:
body = msg.get_payload(decode=True).decode('utf-8', errors='replace')
print(f'FROM: {sender}\nDATE: {date}\nSUBJECT: {subject}\n\n{body[:500]}\n---')
For every contact encountered:
knowledge_add_entity({
"type": "contact",
"name": "Full Name",
"email": "email@domain.com",
"company": "Company Name",
"last_interaction": "ISO date"
})
When waiting for a reply:
schedule_create({
"name": "follow-up: [subject] to [person]",
"cron": "0 9 * * 1",
"task": "Check if [person] replied to [subject] thread"
})