send-email について
send-emailは、Claude CodeからSMTPでメールを送るスキルです。テキストやHTMLの本文、添付ファイルに対応し、連絡先名から宛先を調べられます。
主な機能
- 01SMTP経由のメール送信
- 02テキストとHTML本文への対応
- 03指定ファイルからのHTML読み込み
- 04メールへのファイル添付
- 05連絡先名による宛先の検索
活用シーン
- 01テキストで通知やメッセージを送信
- 02HTML形式のメールを送信
- 03ファイルを添付したメールを送信
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wmy2981/ skills --skill send-emailインストール後、Claude Code で/send-emailを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonscripts/.env.examplesend.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_PORT | 465 | SMTP サーバーのポート |
EMAIL_USER | — | 送信者のメールアドレス |
EMAIL_AUTH | — | SMTP パスワード/アプリトークン |
EMAIL_NAME | ClaudeCode | 送信者の表示名 |
エラー発生時
送信に失敗した場合:
接続拒否/タイムアウト — 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モードのパスでは、ホームディレクトリの展開に~を使用できます