email-smtp-send について
email-smtp-send は、SMTP でメールを送信するスキルです。スクリプトによるメール送信に向き、ローカルファイルの添付、IMAP 送信済みメールボックスへの任意同期、JSON 形式の結果出力に対応します。
主な機能
- 01SMTP によるメール送信
- 02ローカルファイルの添付
- 03IMAP 送信済みメールボックスへの任意同期
- 04設定検証と JSON 結果の出力
活用シーン
- 01レポートを添付したメールの送信
- 02メール送信後の送信済みメールボックスへの同期
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tiangong-ai/ agent-skills --skill email-smtp-sendインストール後、Claude Code で/email-smtp-sendを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/config.example.envreferences/env.mdscripts/smtp_send.py詳細
メールの SMTP 送信
主な目的
- 環境変数で設定した認証情報を使用して、SMTP 経由でメールを送信します。
- 指定された場合は、ローカルファイルを MIME メールのペイロードに添付します。
- クライアント間でメールを確認できるよう、送信したメッセージを IMAP の送信済みメールボックスに追加できます。
- 送信前に、SMTP と送信済みメール同期の設定を検証します。
- 機械可読な JSON 形式でステータスまたはエラーを返します。
ワークフロー
- SMTP の環境変数を設定します(
references/env.mdとassets/config.example.envを参照してください)。 - 任意:IMAP の送信済みメール同期用の環境変数を設定し、同期を有効にする場合は
imapclientをインストールします。 - 設定を検証します。
python3 scripts/smtp_send.py check-config
- メールを 1 通送信します。
python3 scripts/smtp_send.py send \
--to [email protected] \
--subject "SMTP test" \
--body "Hello from email-smtp-send"
- 添付ファイル付きで送信します。
python3 scripts/smtp_send.py send \
--to [email protected] \
--subject "Package delivery" \
--body "See attachments." \
--attach ./report.pdf \
--attach ./appendix.xlsx
- 送信済みメールボックスに同期して送信します。
python3 scripts/smtp_send.py send \
--to [email protected] \
--subject "Synced send" \
--body "This message will be appended to Sent Items." \
--sync-sent \
--sent-mailbox "Sent Items"
出力仕様
check-configは、サニタイズされた SMTP 設定、デフォルト値、送信済みメール同期設定を含む JSON を出力します。sendが成功すると、次の内容を含むtype=statusの JSON オブジェクトを 1 つ出力します。event=smtp_sent- 送信者、宛先の概要、件名、SMTP ホスト/ポート
message_idattachment_countと添付ファイルのメタデータを含むattachments[]enabled、required、appendedと同期のメタデータ/エラーを含むsent_syncオブジェクト
sendが失敗すると、次のいずれかを含むtype=errorの JSON を stderr に出力します。event=smtp_send_invalid_argsevent=smtp_send_failedevent=smtp_sent_sync_failed(同期が必須で、同期に失敗した場合のみ)
パラメーター
send --to:必須の宛先です。複数回指定するか、カンマ区切りで指定できます。send --cc:任意の CC 宛先です。send --bcc:任意の BCC 宛先です。send --subject:任意の件名です(デフォルトは環境変数から取得します)。send --body:任意の本文です(デフォルトは環境変数から取得します)。send --content-type:plainまたはhtmlを指定します。send --from:任意の送信者の上書き値です。send --attach:任意のローカル添付ファイルのパスです。複数回指定するか、カンマ区切りで指定できます。send --max-attachment-bytes:添付ファイルごとに許可する最大バイト数です。send --message-id:任意の Message-ID ヘッダーです。send --in-reply-to:任意の In-Reply-To ヘッダーです。send --references:任意の References ヘッダーです。send --sync-sent|--no-sync-sent:この送信で IMAP の送信済みメール同期を強制的に有効化/無効化します。send --sent-mailbox:送信済みメールボックスを上書きします。send --sent-flags:カンマ区切りの IMAP APPEND フラグです(デフォルトは\Seen)。send --sent-sync-required:SMTP 送信が成功しても送信済みメール同期に失敗した場合、ゼロ以外の終了コードを返します。
環境変数のデフォルト値:
SMTP_HOST、SMTP_PORT、SMTP_SSL、SMTP_STARTTLSSMTP_USERNAME、SMTP_PASSWORD、SMTP_FROM、SMTP_CONNECT_TIMEOUTSMTP_SUBJECT、SMTP_BODY、SMTP_CONTENT_TYPESMTP_MAX_ATTACHMENT_BYTESSMTP_SYNC_SENT、SMTP_SYNC_SENT_REQUIREDSMTP_SENT_IMAP_HOST、SMTP_SENT_IMAP_PORT、SMTP_SENT_IMAP_SSLSMTP_SENT_IMAP_USERNAME、SMTP_SENT_IMAP_PASSWORDSMTP_SENT_IMAP_MAILBOX、SMTP_SENT_IMAP_FLAGS、SMTP_SENT_IMAP_CONNECT_TIMEOUT- 互換性のためのフォールバック:
IMAP_HOST、IMAP_PORT、IMAP_SSL、IMAP_USERNAME、IMAP_PASSWORD、IMAP_CONNECT_TIMEOUT
依存関係
- 送信済みメール同期モードには
imapclientが必要です。
python3 -m pip install imapclient
エラー処理
- 環境変数の設定が無効な場合、終了コード
2で終了します。 - 送信に失敗した場合、終了コード
1で終了します。 - 同期が必須(
--sent-sync-requiredまたはSMTP_SYNC_SENT_REQUIRED=true)で、同期に失敗した場合、終了コード1で終了します。
参考資料
references/env.md
アセット
assets/config.example.env
スクリプト
scripts/smtp_send.py
コメント
Markdown 対応