email-manager

SKILL.md

邮件管理技能

支持飞书邮件监控、IMAP邮箱检查、SMTP发送邮件。

飞书邮件监控

使用飞书API监控邮件:

node /home/ubuntu/clawd/scripts/email-monitor.js --hours 6 --limit 20

参数:

  • --hours - 检查最近N小时的邮件
  • --limit - 返回最大邮件数量

IMAP邮件检查(通用)

import imaplib
import email
from email.header import decode_header

def check_unread_emails(server, user, password, folder='INBOX'):
    """
    检查未读邮件
    
    参数:
    - server: IMAP服务器地址
    - user: 邮箱账号
    - password: 密码/应用密码
    - folder: 邮件文件夹
    
    返回:
    - 未读邮件列表
    """
    mail = imaplib.IMAP4_SSL(server, 993)
    mail.login(user, password)
    mail.select(folder)
    
    status, messages = mail.search(None, 'UNSEEN')
    email_ids = messages[0].split()
    
    emails = []
    for email_id in email_ids:
        status, msg_data = mail.fetch(email_id, '(RFC822)')
        msg = email.message_from_bytes(msg_data[0][1])
        
        subject = decode_header(msg['Subject'])[0][0]
        if isinstance(subject, bytes):
            subject = subject.decode()
        
        emails.append({
            'id': email_id.decode(),
            'from': msg['From'],
            'subject': subject,
            'date': msg['Date']
        })
    
    mail.close()
    mail.logout()
    return emails

发送邮件(SMTP)

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(server, port, user, password, to_addr, subject, body, html=False):
    """
    发送邮件
    
    参数:
    - server: SMTP服务器地址
    - port: 端口(通常587)
    - user: 发件人邮箱
    - password: 密码/应用密码
    - to_addr: 收件人邮箱
    - subject: 邮件主题
    - body: 邮件正文
    - html: 是否为HTML格式
    """
    if html:
        msg = MIMEMultipart('alternative')
        msg.attach(MIMEText(body, 'html'))
    else:
        msg = MIMEText(body)
    
    msg['Subject'] = subject
    msg['From'] = user
    msg['To'] = to_addr
    
    with smtplib.SMTP(server, port) as smtp:
        smtp.starttls()
        smtp.login(user, password)
        smtp.send_message(msg)
    
    return True

常用邮箱服务器配置

邮箱 IMAP服务器 SMTP服务器 端口
Gmail imap.gmail.com smtp.gmail.com 587
Outlook outlook.office365.com smtp.office365.com 587
QQ邮箱 imap.qq.com smtp.qq.com 587
163邮箱 imap.163.com smtp.163.com 587

注意:大多数邮箱需要开启应用专用密码,不能直接使用登录密码。

使用场景

  1. 检查未读邮件 - 用户问"有新邮件吗"、"检查收件箱"
  2. 发送邮件 - 用户说"发邮件给XXX"、"回复邮件"
  3. 邮件监控 - 定期检查邮件并提醒用户

心跳集成

可在 HEARTBEAT.md 中配置定期邮件检查:

# 检查未读邮件
每4小时检查一次飞书邮件,有重要邮件时提醒。

安全提示

  • 邮箱密码应存储在环境变量或加密配置中
  • 不要在代码中硬编码密码
  • 使用应用专用密码而非账户密码
Weekly Installs
1
First Seen
5 days ago
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1