首页龙虾技能列表 › Proton Mail — Proton 邮件

📧 Proton Mail — Proton 邮件

v1.0.1

Proton Mail 邮件工具。

0· 575·0 当前·0 累计
by @christopher-schulze (Christopher)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/13
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
The skill's functionality (Playwright-based ProtonMail automation) matches its description, but there are important mismatches and risky instructions — notably undeclared credential handling, bot-detection evasion, and use of unsafe browser flags — that merit caution before installing.
评估建议
This skill appears to do what it says (browser automation for ProtonMail) but exercise caution before installing or running it. Items to consider: 1) Manifest mismatch — the SKILL.md asks you to supply PROTON_EMAIL and PROTON_PASSWORD but the registry metadata does not declare these as required credentials; ask the publisher to correct the manifest so you clearly know what secrets will be used. 2) Bot-evasion code — the instructions explicitly disable automation detection and recommend disabling...
详细分析 ▾
用途与能力
The skill's declared purpose (automating ProtonMail via Playwright) aligns with the required binaries (node, playwright) and the runtime instructions. However, the registry metadata lists no required environment variables or primary credential while the SKILL.md repeatedly instructs using PROTON_EMAIL and PROTON_PASSWORD — this mismatch is incoherent and should have been declared in the skill manifest. The skill owner/source is unknown which reduces trust.
指令范围
The SKILL.md instructs the agent to perform full browser automation including logging in, reading, and sending encrypted email — which is expected — but it also explicitly includes bot-detection evasion code (overriding navigator.webdriver and disabling automation-related features). That behavior goes beyond normal automation guidance and could violate site TOS or be abused. The instructions also encourage storing credentials in environment variables but do not specify secure handling, nor does the manifest declare those env vars.
安装机制
There is no centralized install spec in the registry (instruction-only), but the SKILL.md suggests installing Playwright via npm and running `npx playwright install chromium`. Those are standard installer paths (no third-party download URLs). Still, the Chromium install will download browser binaries at runtime; because the skill relies on npx installs and running a browser, users should inspect all commands before executing them in production environments.
凭证需求
The skill requires the user's ProtonMail credentials to function (email/password), which is reasonable for UI automation, but the manifest fails to declare any required env vars or primary credential. Requiring highly sensitive credentials without declaring them in the registry metadata (and without guidance on secure storage or least privilege) is a proportionality and transparency issue. Also the skill asks users to disable sandboxing flags which can increase host risk if run on shared systems.
持久化与权限
The skill is not marked always:true and does not request special platform persistence. It is user-invocable and allows autonomous model invocation (the platform default). The skill does not request or attempt to modify other skills or system-wide agent settings in the provided instructions.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/2/17

- Added comprehensive documentation in SKILL.md covering setup, usage, and security tips for managing ProtonMail via Playwright browser automation. - Specifies installation requirements and system dependencies for various platforms. - Provides step-by-step code samples for logging in, reading, sending, and managing emails. - Introduces bot detection evasion techniques to improve reliability. - Highlights limitations such as 2FA automation challenges and UI fragility. - Offers detailed troubleshooting advice and best security practices. - Project is now clearly positioned as a browser automation solution (not API or IMAP).

● 可疑

安装命令 点击复制

官方npx clawhub@latest install protonmail-claw
镜像加速npx clawhub@latest install protonmail-claw --registry https://cn.clawhub-mirror.com

技能文档

Your encrypted inbox, automated. Because checking emails manually is so 2010.

什么 做

  • 登录 到 任何 ProtonMail 账户 securely
  • 读取 emails 从 inbox
  • 发送 新的 emails 带有 compose functionality
  • Manage mailbox 点赞 pro

All via Playwright browser automation. No API keys, no IMAP/SMTP headaches - just a real browser doing real browser things.

为什么 exists

You have better things to do than clicking through ProtonMail's beautiful (but slow) UI. Let your agent handle it. While you relax. Or code. Or whatever it is you do.

We built this because:

  • ProtonMail's web UI ... leisurely
  • Automation hot
  • 为什么 click 当...时 您 可以 script?

Requirements

Basics

  • 节点.js 18+ (20+ recommended)
  • Playwright 1.40+ (npm install playwright)
  • Chromium browser (npx playwright install chromium)

System Dependencies (Linux)

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2 libpango-1.0-0 libcairo2

# Raspberry Pi / ARM sudo apt-get install -y chromium-browser

Secret Sauce (Bot Detection Bypass)

This skill includes enterprise-grade bot detection evasion:
// Launch with stealth args
await chromium.launch({ 
  headless: true,
  args: [
    '--disable-blink-features=AutomationControlled',
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage'
  ]
});

// Hide webdriver property await page.addInitScript(() => { Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); });

This makes Chrome think it's being controlled by a human. Mostly works. ✨

Quick 开始

1. 登录

const { chromium } = require('playwright');

async function loginProton(email, password) { const browser = await chromium.launch({ headless: true, args: ['--disable-blink-features=AutomationControlled', '--no-sandbox'] }); const context = await browser.newContext({ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36', }); const page = await context.newPage(); await page.addInitScript(() => { Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); }); await page.goto('https://account.proton.me/login'); await page.waitForTimeout(2000); await page.fill('#username', email); await page.fill('#password', password); await page.click('button[type=submit]'); await page.waitForTimeout(3000); return { browser, context, page }; }

2. Check Inbox

await page.goto('https://mail.proton.me/inbox');
await page.waitForTimeout(2000);

const emails = await page.evaluate(() => { return Array.from(document.querySelectorAll('.item')).map(e => ({ subject: e.querySelector('.subject')?.innerText, sender: e.querySelector('.sender')?.innerText, time: e.querySelector('.time')?.innerText })); });

console.log(emails);

3. 读取 Email

await page.click('.item:first-child');
await page.waitForTimeout(2000);

const content = await page.evaluate(() => document.querySelector('.message-content')?.innerText );

4. 发送 Email (Tested & Working)

// Navigate to compose
await page.goto('https://mail.proton.me/compose');
await page.waitForTimeout(3000);

// Use keyboard navigation (most reliable) // Tab to recipient field await page.keyboard.press('Tab'); await page.waitForTimeout(500);

// Type recipient await page.keyboard.type('recipient@email.com'); await page.waitForTimeout(500);

// Tab to subject await page.keyboard.press('Tab'); await page.waitForTimeout(500);

// Type subject await page.keyboard.type('Your subject here'); await page.waitForTimeout(500);

// Tab to body await page.keyboard.press('Tab'); await page.waitForTimeout(500);

// Type message await page.keyboard.type('Your message here...');

// Send with Ctrl+Enter await page.keyboard.press('Control+Enter'); await page.waitForTimeout(3000);

5. 登出 (please, 's polite)

await page.click('button[aria-label="Settings"]');
await page.click('text=Sign out');
await browser.close();

Environment Variables

Don't hardcode passwords (seriously, don't):

export PROTON_EMAIL="your@email.com"
export PROTON_PASSWORD="yourpassword"

Then in code:

const email = process.env.PROTON_EMAIL;
const password = process.env.PROTON_PASSWORD;

Complete 示例

const { chromium } = require('playwright');

async function main() { const email = process.env.PROTON_EMAIL || 'your@email.com'; const password = process.env.PROTON_PASSWORD || 'yourpassword'; const browser = await chromium.launch({ headless: true, args: ['--disable-blink-features=AutomationControlled', '--no-sandbox'] }); const context = await browser.newContext({ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36', }); const page = await context.newPage(); await page.addInitScript(() => { Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); }); // Login await page.goto('https://account.proton.me/login'); await page.fill('#username', email); await page.fill('#password', password); await page.click('button[type=submit]'); await page.waitForTimeout(5000); // Go to compose await page.goto('https://mail.proton.me/compose'); await page.waitForTimeout(3000); // Send email using keyboard navigation (most reliable) await page.keyboard.press('Tab'); await page.keyboard.type('recipient@email.com'); await page.keyboard.press('Tab'); await page.keyboard.type('Test Subject'); await page.keyboard.press('Tab'); await page.keyboard.type('Hello! This is a test email.'); await page.keyboard.press('Control+Enter'); await page.waitForTimeout(3000); console.log('📧 Email sent!'); await browser.close(); }

main();

Limitations

  • 2FA: 可以't 做 2FA 通过 automation (使用 browser 在...上 device 对于 initial 登录, 然后 Cookie 会话)
  • Rate limiting: ProtonMail might throttle 您 如果 您 go crazy
  • Dynamic UI: 类 names 更改. 使用 text selectors 或 ARIA 当...时 possible
  • Headless detection: Works mostly, 但是 Proton might occasionally notice

Troubleshooting

"chromium 不 found"

npx playwright install chromium

Bot detection / 登录 fails

  • 验证 bot detection bypass 已启用
  • Check 用户 agent 字符串 current
  • Try headed mode 对于 testing

超时 errors

  • Increase waitForTimeout values
  • Check internet
  • ProtonMail might rate limiting

"libX11 不 found"

Install system dependencies (see Requirements section)

Security Notes

  • 🔒 Credentials 应该 come 从 environment variables, 不 hardcoded
  • 🔑 使用 app-specific passwords 如果 ProtonMail supports them
  • 📝 Always 登出 当...时 已完成
  • 🍪 会话 cookies 可以 saved 对于 re-使用 (advanced)

Made 带有 🦞🔒

从 Claws 对于 Claws. 因为 reading emails manually 对于 plebs.

HQ Quality Approved.

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务