mcpField
E
email

email

github.com/val-town开发1041 次安装5 周前更新
代码仓库

关于 email

这是用于在 Val Town vals 中收发邮件的技能,涵盖邮件触发处理程序、发送与回复,以及测试邮件处理和投递情况。

主要功能

  1. 01处理邮件触发的 val
  2. 02使用 std/email 发送邮件
  3. 03根据发件人信息回复
  4. 04用 run_file 测试处理程序
  5. 05检查投递日志

适用场景

  1. 01通过邮件触发 val
  2. 02从 val 发送邮件
  3. 03回复收到的邮件
  4. 04无需等待真实邮件来测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/val-town/plugins --skill email

安装后在 Claude Code 中输入/email确认已加载。

详细介绍

电子邮件

Val Town 支持双向邮件处理:val 可以由收到的邮件触发(邮件类型的 val),也可以通过 std/email 发送邮件。

接收邮件 — 邮件类型的 val

邮件类型的 val(fileType: "email")会在邮件送达分配给该 val 的地址时运行。

// Learn more: https://docs.val.town/vals/email/
// Email type: {
//   from: string,
//   to: string[],
//   subject?: string,
//   text?: string,
//   html?: string,
//   attachments: File[],
//   headers: Record<string, string>
// }
export default async function (e: Email) {
  console.log(e.from, e.subject, e.text);
}

文件必须包含一个 export — 处理程序使用 export default。

每封邮件最大 30MB,包括附件。更大的邮件将被拒收。

读取分配的地址

列出文件或创建邮件类型的文件时,响应中会包含 links.email — 触发此 val 的地址。始终从 API 响应中读取该地址。切勿自行构造电子邮件地址 — 地址格式由平台决定,且可能会更改。

发送邮件 — std/email

发送邮件时,从 std/email 导入:

import { email } from "https://esm.town/v/std/email";

await email({
  to: "[email protected]",
  subject: "Hello",
  text: "Message body",
});

std/email 将 email 导出为发送函数本身 — 直接调用它(email({ ... }));它没有 email.send 方法。它接受你预期的参数:to、subject、text、html,以及 from、cc、bcc、replyTo、attachments 和 headers。如果未指定 to 字段,邮件默认会发送给 val 所有者的地址。

回复收到的邮件

结合两者 — 在邮件类型的处理程序中读取收到邮件的 from,然后调用 email 回复:

import { email } from "https://esm.town/v/std/email";

export default async function (e: Email) {
  await email({
    to: e.from,
    subject: `Re: ${e.subject ?? ""}`,
    text: "Got it, thanks!",
  });
}

验证更改

编辑邮件类型的 val 后,使用 run_file 和示例 Email 负载手动调用处理程序,而不是等待实际收到邮件。对于仅用于发送邮件的 val,以相同方式运行脚本,并检查 get_logs 中是否有投递错误。

评论

支持 Markdown