Email Web Interface

Polar Sponsor
爱发电 赞助
.NET 9.0

用于代理邮件通信的网页界面(Lourens、Ace等)。提供收件箱查看、草稿创建/编辑以及通过Gmail/Gog CLI发送功能。

电子邮件 Web 界面 Skill.

功能概述

电子邮件 Web 界面 Skill.是一项面向实际任务的技能,主要用于Description. 代理电子邮件通信(Lourens, Ace等)的Web 界面. 提供收件箱查看,草稿创建/编辑,并通过Gmail/Gog C发送功能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

电子邮件网页界面技能

描述

用于代理邮箱通信(如 Lourens、Ace 等)的网页界面。通过 Gmail/Gog CLI 集成,提供收件箱查看、草稿创建/编辑及邮件发送功能。

适用场景

  • 用户需要访问代理邮箱收件箱时
  • 需撰写并发送非机器人类邮件时
  • 需查看和管理邮件草稿时
  • 现有网页邮件界面操作笨重时

备选方案

方案 A:现有网页邮件解决方案

  1. Roundcube(推荐)

    • 优点:成熟稳定、功能丰富、插件生态完善
    • 缺点:资源占用较高,基于 PHP 构建
  2. RainLoop

    • 优点:界面现代、轻量级、移动端支持良好
    • 缺点:项目相对年轻、功能较少
  3. SnappyMail

    • 优点:响应迅速、界面类似 Gmail
    • 缺点:较新项目,社区规模较小

方案 B:自定义界面

构建一个基于 React/Node.js 的自定义界面,具备以下能力:

  • 通过 Gog CLI 接入 Gmail API
  • 提供简洁、极简的用户界面
  • 与 Mission Control 深度集成
  • 针对我方具体需求定制开发

推荐方案

优先采用 Roundcube,并按需定制。Roundcube 具备以下优势:

  • 开箱即用的完整邮件功能
  • 支持 IMAP/SMTP(兼容 Gmail)
  • 提供插件系统,便于扩展与定制
  • 稳定可靠,文档完备

实施流程

1. 安装 Roundcube

# 安装依赖
apt-get update
apt-get install -y roundcube roundcube-core roundcube-mysql roundcube-plugins

# 或使用 Docker
docker run -d --name roundcube 
  -p 8081:80 
  -e ROUNDCUBEMAIL_DEFAULT_HOST=ssl://imap.gmail.com 
  -e ROUNDCUBEMAIL_DEFAULT_PORT=993 
  -e ROUNDCUBEMAIL_SMTP_SERVER=tls://smtp.gmail.com 
  -e ROUNDCUBEMAIL_SMTP_PORT=587 
  roundcube/roundcubemail

2. 配置 Gmail 访问权限

Ace 的 Gmail 账户需完成以下配置:

  1. 应用专用密码(若启用两步验证):在 Google 账户 → 安全性中生成
  2. 启用 IMAP:设置 → 转发和 POP/IMAP → 启用 IMAP
  3. 允许不够安全的应用(如需):可能需开启“允许不够安全的应用”选项

3. Roundcube 配置

// config/config.inc.php
$config['default_host'] = 'ssl://imap.gmail.com';
$config['default_port'] = 993;
$config['smtp_server'] = 'tls://smtp.gmail.com';
$config['smtp_port'] = 587;
$config['smtp_user'] = 'ace.agent.email@gmail.com';
$config['smtp_pass'] = 'APP_PASSWORD_HERE';
$config['imap_conn_options'] = array(
  'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
  ),
);

4. 自定义集成(如需)

若 Roundcube 使用体验不佳,可构建自定义界面:

# 使用 Gog CLI 构建的自定义邮件界面
from flask import Flask, render_template, request, jsonify
import subprocess
import json

app = Flask(__name__)

class EmailInterface:
    def __init__(self):
        self.gog_path = "/usr/local/bin/gog"
    
    def get_inbox(self, limit=50):
        """通过 Gog CLI 获取收件箱邮件。"""
        cmd = [self.gog_path, "gmail", "messages", "list", 
               "--limit", str(limit), "--format", "json"]
        
        try:
            result = subprocess.run(cmd, capture_output=True, text=True)
            if result.returncode == 0:
                return json.loads(result.stdout)
        except Exception as e:
            print(f"获取收件箱失败:{e}")
        
        return []
    
    def get_message(self, message_id):
        """获取指定邮件内容。"""
        cmd = [self.gog_path, "gmail", "messages", "get",
               message_id, "--format", "json"]
        
        try:
            result = subprocess.run(cmd, capture_output=True, text=True)
            if result.returncode == 0:
                return json.loads(result.stdout)
        except Exception as e:
            print(f"获取邮件失败:{e}")
        
        return None
    
    def send_email(self, to, subject, body):
        """通过 Gog CLI 发送邮件。"""
        cmd = [self.gog_path, "gmail", "messages", "send",
               "--to", to, "--subject", subject, "--body", body]
        
        try:
            result = subprocess.run(cmd, capture_output=True, text=True)
            return result.returncode == 0
        except Exception as e:
            print(f"发送邮件失败:{e}")
            return False

@app.route('/')
def inbox():
    """收件箱视图。"""
    email_iface = EmailInterface()
    messages = email_iface.get_inbox(limit=20)
    return render_template('inbox.html', messages=messages)

@app.route('/message/')
def view_message(message_id):
    """查看指定邮件。"""
    email_iface = EmailInterface()
    message = email_iface.get_message(message_id)
    return render_template('message.html', message=message)

@app.route('/compose', methods=['GET', 'POST'])
def compose():
    """撰写新邮件。"""
    if request.method == 'POST':
        to = request.form['to']
        subject = request.form['subject']
        body = request.form['body']
        
        email_iface = EmailInterface()
        success = email_iface.send_email(to, subject, body)
        
        return jsonify({'success': success})
    
    return render_template('compose.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8082, debug=True)

5. 与 Mission Control 集成

将邮件界面添加至 Mission Control 侧边栏:

// mission-control 侧边栏配置
{
  name: "📧 Ace Email",
  path: "/email",
  icon: "email",
  external: true,
  url: "http://localhost:8081"  // Roundcube
  // 或:"http://localhost:8082"  // 自定义界面
}

6. 安全注意事项

  1. HTTPS:使用带 SSL 的反向代理
  2. 身份认证:为邮件界面增加登录机制
  3. 速率限制:防止滥用
  4. 日志记录:监控邮件访问行为
  5. 备份机制:定期备份重要邮件

实施步骤

第一阶段:快速部署(今日)

  1. 通过 Docker 安装 Roundcube
  2. 使用 Ace 的 Gmail 凭据完成配置
  3. 测试基础邮件功能(收发、查看等)
  4. 在 Mission Control 中添加快捷入口

第二阶段:定制优化(本周)

  1. 评估 Roundcube 的实际可用性与用户体验
  2. 若体验不佳,启动自定义界面开发
  3. 实现核心功能:
    • 支持会话线程的收件箱
    • 富文本编辑的撰写界面
    • 草稿自动保存
    • 全文搜索功能

第三阶段:深度集成(下周)

  1. 与 Mission Control 实现深度集成(状态同步、上下文共享等)
  2. 新增新邮件通知系统
  3. 内置常用回复模板
  4. 增强搜索与高级筛选能力

测试清单

  • 可正常查看收件箱
  • 可正常阅读邮件内容
  • 可正常撰写新邮件
  • 可正常发送邮件
  • 可正常保存草稿
  • 搜索功能可用
  • 移动端适配良好
  • 安全机制完备(HTTPS、身份认证等)

备用方案

若 Roundcube 实际运行效果不理想:

  1. 尝试 RainLoop(更轻量的替代方案)
  2. 构建最小可行自定义界面
  3. 直接调用 Gog CLI,搭配简易 Web 封装层

参考资料

  • Roundcube:https://roundcube.net
  • Gmail IMAP 设置说明:https://support.google.com/mail/answer/7126229
  • Gog CLI:https://github.com/openclaw/gog
  • Mission Control 集成指南

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习