mcpField
S
send-email

send-email

github.com/wmy2981生産性155 回インストール5 週間前に更新
リポジトリ

send-email について

send-emailは、Claude CodeからSMTPでメールを送るスキルです。テキストやHTMLの本文、添付ファイルに対応し、連絡先名から宛先を調べられます。

主な機能

  1. 01SMTP経由のメール送信
  2. 02テキストとHTML本文への対応
  3. 03指定ファイルからのHTML読み込み
  4. 04メールへのファイル添付
  5. 05連絡先名による宛先の検索

活用シーン

  1. 01テキストで通知やメッセージを送信
  2. 02HTML形式のメールを送信
  3. 03ファイルを添付したメールを送信

インストール

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

$npx skills add https://github.com/wmy2981/skills --skill send-email

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.claude-plugin/
plugin.json
scripts/
.env.example
send.py

詳細

メール送信スキル

Claude Code から SMTP 経由でメールを送信します。プレーンテキスト、HTML、添付ファイル、テンプレートベースのワークフローに対応しています。

実行ルール

依存関係、環境変数、設定を事前に確認せず、ユーザーが要求したコマンドを直接実行してください。問題がある場合は、スクリプトが明確なエラーを出して失敗します。その場合にのみ確認して修正してください。

python scripts/send.py <to> <subject> <mode> <body> [attachment...]
モード
モード用途本文の例
--textプレーンテキストのメール"Just saying hi"
--htmlインライン HTML 文字列"<b>Alert</b>"
--fileファイルから読み込む HTML~/.wmyskills/send-email/msg/my.html

長い HTML や複雑な HTML には、必ず ~/.wmyskills/send-email/msg/ 内のファイルを指定して --file を使用してください。

例

プレーンテキスト:

python scripts/send.py [email protected] "Hello" --text "Just saying hi"

インライン HTML(短いもの):

python scripts/send.py [email protected] "Alert" --html "<b>Server is down</b>"

ファイルから読み込む HTML(長いもの、または複雑なもの):

python scripts/send.py [email protected] "Newsletter" --file ~/.wmyskills/send-email/msg/my_newsletter.html

添付ファイル付き(すべてのモード):

python scripts/send.py [email protected] "Files" --text "See attached" report.pdf

メール本文のルール

メール本文に返信を促す文言を絶対に追加しないでください。 このスキルは送信専用であり、メールの受信や閲覧はできません。「このメールに返信してください」「ご質問があればお気軽に返信してください」など、メールでの返信を促す表現は含めないでください。返信は誰も確認しない受信トレイに届いてしまいます。

ファイルの保存ルール

これらのルールに違反すると不具合になります。 すべてのメール HTML ファイルは、指定されたディレクトリを経由する必要があります。

ディレクトリ用途
~/.wmyskills/send-email/templates/読み取り専用の HTML テンプレートです。ここからコピーし、直接編集しないでください。
~/.wmyskills/send-email/msg/--file 用 HTML ファイルを保存できる唯一のディレクトリです。ここに保存してから、パスを指定してください。

ルール:

  • すべてのメール HTML ファイルは、--file で送信する前に必ず ~/.wmyskills/send-email/msg/ に保存してください
  • HTML をリポジトリのディレクトリ、/tmp、Downloads、Desktop、その他の場所に保存しないでください
  • 別のディレクトリ構造を作成しないでください。send.py はこのパスを基準にファイルを検出します
  • リポジトリに保存するのはコードであり、実行時データではありません。実行時データは ~/.wmyskills/<skill-name>/ に保存してください

連絡先

完全なメールアドレスの代わりに、名前を指定して送信できます。名前とアドレスの対応関係は、ユーザーが編集できる YAML ファイルに保存されています。

~/.wmyskills/send-email/contacts.yaml(~ = ユーザーのホームディレクトリ)

小明: [email protected]
张三: [email protected]

照合ルール: 宛先が名前(@ を含む完全なアドレスではない)の場合、このファイルを読み込み、名前が完全に一致する項目を探してください。解決したメールアドレスを <to> 引数に指定してください。アドレスを推測したり、でっち上げたりしないでください。

状況対応
宛先に @ が含まれるそのまま使用し、照合しない
ファイル内に名前が見つからないユーザーに伝え、ファイル内で利用可能な名前を一覧表示する
ファイルがない上記の構造を示してユーザーに作成してもらうか、ユーザーが指定したアドレスを使用する
YAML の解析エラーファイル形式を確認するようユーザーに依頼する

セキュリティ

scripts/.env または ~/.wmyskills/.env の内容を絶対に読み取ったり、表示したり、共有したりしないでください。 これらのファイルには SMTP 認証情報が含まれています。以下の表は、存在する変数を確認するための参照用としてのみ使用してください。実際の .env ファイルは読み取らないでください。

変数デフォルト説明
EMAIL_HOST—SMTP サーバーのホスト名
EMAIL_PORT465SMTP サーバーのポート
EMAIL_USER—送信者のメールアドレス
EMAIL_AUTH—SMTP パスワード/アプリトークン
EMAIL_NAMEClaudeCode送信者の表示名

エラー発生時

送信に失敗した場合:

接続拒否/タイムアウト — EMAIL_HOST または EMAIL_PORT が間違っている可能性があります。プロバイダーに確認してください。

認証失敗 — EMAIL_USER/EMAIL_AUTH が間違っている可能性があります。プロバイダーによっては、アプリ専用パスワードが必要です。

smtplib 例外 — 環境変数が未設定または不正です。SMTP 例外は捕捉されず、トレースバックが表示されます。EMAIL_HOST、EMAIL_USER、EMAIL_AUTH が正しく設定されていることを確認してください。

「ファイルが見つかりません」/「添付ファイルが見つかりません」 — HTML ファイルまたは添付ファイルのパスが無効です。パスを確認して、もう一度試してください。

注意事項

  • --text および --html の本文引数に含まれるエスケープシーケンス(\n、\t など)は自動的にデコードされます
  • argparse は使用されません。引数は位置指定で、順序に依存します
  • EMAIL_PORT のデフォルト値は 465(SSL)です。STARTTLS(587)はサポートされていません
  • --file モードのパスでは、ホームディレクトリの展開に ~ を使用できます

コメント