mcpField
E
email

email

github.com/val-town開発1041 回インストール5 週間前に更新
リポジトリ

email について

Val Town の val でメールを送受信するためのスキルです。受信メールによる処理の起動、送信と返信、動作確認の方法を扱います。

主な機能

  1. 01受信メールで val を実行
  2. 02std/email によるメール送信
  3. 03送信者情報を使った返信
  4. 04run_file でハンドラーをテスト
  5. 05配信ログの確認

活用シーン

  1. 01メールをきっかけに val を実行
  2. 02val からメールを送信
  3. 03受信メールに返信
  4. 04実際の受信を待たずにテスト

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/emailを入力して読み込まれたか確認します。

詳細

メール

Val Town は両方向に対応しています。メールの受信によって vals を起動(メール型 vals)でき、std/email を使ってメールを送信することもできます。

メールの受信 — メール型 vals

メール型 vals(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 を使用してください。

メッセージ 1 件あたりの上限は 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 を編集した後は、実際の受信メールを待つ代わりに、サンプルの Email ペイロードを使って run_file を実行し、ハンドラーを手動で呼び出してください。送信専用の vals では、同じ方法でスクリプトを実行し、get_logs で配信エラーを確認してください。

コメント