mcpField
S
send-email

send-email

github.com/wangyendt生産性9652 回インストール6 日前に更新
リポジトリ

send-email について

send-emailは、PythonとSMTPを使ったメール送信の手順を案内するスキルです。メール情報やプロバイダーの認証情報の収集から送信確認までを扱い、テキスト、HTML、Markdown変換、添付ファイル、変数置換テンプレートに対応します。

主な機能

  1. 01対応プロバイダーと独自SMTPでの送信
  2. 02テキストおよびHTMLメール
  3. 03MarkdownからHTMLへの自動変換
  4. 04複数ファイルの添付
  5. 05変数置換付きテンプレート
  6. 06対話形式での情報収集と送信確認

活用シーン

  1. 01書式付きレポートのメール送信
  2. 02複数ファイルを添付したメールの送信
  3. 03HTMLテンプレートを使った通知の作成
  4. 04メールプロバイダーのSMTP認証情報の設定

インストール

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

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

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

同梱ファイル

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

requirements.txt
assets/
report-summary.html
simple-notification.html
references/
smtp-servers.md
scripts/
send_email.py

詳細

メールを送信

Python を使用して SMTP 経由でメールを送信します。プレーンテキスト、HTML 形式、ファイル添付、テンプレートベースのメールに対応しています。

主な機能

  • デフォルトの送信元メールアドレス:送信元が指定されていない場合、[email protected] を自動的に使用します
  • Markdown から HTML への自動変換:Markdown コンテンツを検出し、美しくスタイル設定された HTML に変換します
  • 複数のメールプロバイダー:Gmail、Outlook、QQ Mail、163/126 Mail、カスタム SMTP に対応しています
  • ファイル添付:メールに複数のファイルを添付できます
  • メールテンプレート:変数置換に対応したテンプレートファイルを使用できます

メール送信の対話フロー

このスキルでは、メール送信の手順を段階的に案内します。

ステップ 1:メールの基本情報を収集する

必要な情報をユーザーに尋ねます。不足している情報があれば、ユーザーに提示を求めます。

情報説明例
宛先 (--to)送信先のメールアドレス[email protected]
件名 (--subject)メールの件名Monthly Report
内容 (--content)メール本文のテキストまたは HTMLHello, here is your report.

重要 — デフォルトの送信元メールアドレスの動作:

ユーザーが最初のリクエストで送信元メールアドレスを指定していない場合は、デフォルトの送信元として [email protected] を自動的に使用してください。どのメールアドレスから送信するかをユーザーに尋ねないでください。

ユーザーが自分のメールアドレスを使用したいと明示した場合に限り、別の送信元メールアドレスを尋ねてください。

デフォルトの [email protected] を使用する場合は、ステップ 2 に進み、126 メールの認証コードを尋ねてください。

ステップ 2:メールプロバイダーを特定し、認証情報を収集する

送信元のメールアドレスのドメインに基づいてメールプロバイダーを特定し、適切な認証情報を求めます。

メールプロバイダーの検出
@gmail.com, @googlemail.com   → Gmail
@outlook.com, @hotmail.com, @live.com, @office365.com → Outlook/Office 365
@qq.com, @vip.qq.com          → QQ Mail
@163.com, @126.com            → NetEase Mail
@aliyun.com, @aliyun-inc.com  → Aliyun Mail
@sendgrid.net, @*.sendgrid.net → SendGrid
@*.mailgun.org                → Mailgun
Other domains                  → Custom SMTP (ask for server, port, username, password)
プロバイダー別の認証情報要件

Gmail(@gmail.com、@googlemail.com)

  • パスワードの種類:アプリパスワード(アカウントのパスワードではありません)
  • 前提条件:2 要素認証(2FA)を有効にする必要があります
  • アプリパスワードの取得方法:
    1. https://myaccount.google.com/apppasswords にアクセスします
    2. Google アカウントにログインします
    3. 「Mail」と「Other (Custom name)」を選択し、「SMTP Script」のような名前を入力します
    4. 「Generate」をクリックし、16 文字のパスワードをコピーします
  • SMTP サーバー:smtp.gmail.com
  • ポート:587(TLS)または 465(SSL)
  • ユーザー名:Gmail アドレス全体

Outlook / Office 365(@outlook.com、@hotmail.com、@live.com、@office365.com)

  • パスワードの種類:アカウントのパスワード(Web ログインと同じ)
  • SMTP サーバー:smtp.office365.com
  • ポート:587(TLS)
  • ユーザー名:Outlook / Office 365 のメールアドレス全体

QQ Mail(@qq.com、@vip.qq.com)

  • パスワードの種類:SMTP 認証コード(アカウントのパスワードではありません)
  • 認証コードの取得方法:
    1. https://mail.qq.com で QQ Mail にログインします
    2. 「Settings」(设置)→「Account」(账户)をクリックします
    3. 「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV Service」を探します
    4. 「POP3/SMTP Service」または「IMAP/SMTP Service」を開きます
    5. 「Generate Authorization Code」(生成授权码)をクリックします
    6. SMS で本人確認を行い、生成されたコードをコピーします
  • SMTP サーバー:smtp.qq.com
  • ポート:587(TLS)または 465(SSL)
  • ユーザー名:QQ のメールアドレス全体

NetEase 163 Mail(@163.com)

  • パスワードの種類:SMTP 認証コード(アカウントのパスワードではありません)
  • 認証コードの取得方法:
    1. https://mail.163.com で 163 Mail にログインします
    2. 「Settings」(设置)→「POP3/SMTP/IMAP」をクリックします
    3. 「IMAP/SMTP Service」の横にある「Open」をクリックします
    4. 本人確認を行い、「Get Authorization Code」(获取授权码)をクリックします
    5. 16 文字の認証コードをコピーします
  • SMTP サーバー:smtp.163.com
  • ポート:465(SSL)または 994(IMAP)
  • ユーザー名:163 のメールアドレス全体

NetEase 126 Mail(@126.com)

  • パスワードの種類:SMTP 認証コード(アカウントのパスワードではありません)
  • 認証コードの取得方法:
    1. https://mail.126.com で 126 Mail にログインします
    2. 「Settings」(设置)→「POP3/SMTP/IMAP」をクリックします
    3. 「IMAP/SMTP Service」を有効にします
    4. 表示された認証パスワードをコピーします
  • SMTP サーバー:smtp.126.com
  • ポート:465(SSL)または 25(SSL)
  • ユーザー名:126 のメールアドレス全体

SendGrid

  • パスワードの種類:API キー(パスワードとして使用)
  • API キーの取得方法:
    1. https://app.sendgrid.com で SendGrid にログインします
    2. Settings → API Keys に移動します
    3. 「Create API Key」をクリックします
    4. 権限を設定し、「Create & View」をクリックします
    5. API キーをコピーします(表示されるのは一度だけです)
  • SMTP サーバー:smtp.sendgrid.net
  • ポート:587(TLS)または 465(SSL)
  • ユーザー名:apikey(この文字列をそのまま指定します)

Mailgun

  • パスワードの種類:ダッシュボードで確認できる SMTP 認証情報
  • 認証情報の取得方法:
    1. https://app.mailgun.com で Mailgun にログインします
    2. Sending → Domains に移動します
    3. ドメインを選択します
    4. ページに表示された SMTP ユーザー名とパスワードをコピーします
  • SMTP サーバー:smtp.mailgun.org
  • ポート:587(TLS)
  • ユーザー名:Mailgun ダッシュボードに表示されたもの

カスタム SMTP(その他のドメイン) ユーザーに以下の情報を尋ねます:

  • SMTP サーバーアドレス
  • SMTP ポート
  • ユーザー名
  • パスワード
ステップ 3:Markdown コンテンツを自動検出して処理する

スクリプトは、一般的なパターンを確認して、メールの内容が Markdown 形式かどうかを自動的に検出します:

  • 見出し(#、##、###)
  • 太字/斜体のテキスト(**bold**、*italic*)
  • リスト(- item または 1. item)
  • コードブロック(```)
  • リンク([text](url))

Markdown が検出されると、以下の特徴を備えた美しくスタイル設定された HTML に内容が自動変換されます:

  • プロフェッショナルなタイポグラフィと余白
  • 色分けされた見出し
  • スタイル設定されたテーブルとコードブロック
  • メールクライアントに合わせたレスポンシブデザイン

Markdown コンテンツに対して --content-type html を手動で指定する必要はありません。自動的に処理されます!

ステップ 4:必要に応じて任意の情報を収集する
  • --from-name:送信者の表示名(例:「John Doe」)
  • --content-type html:HTML 形式のメールに使用します(デフォルトはプレーンテキストですが、Markdown は自動的に変換されます)
  • --attach:添付するファイルのパス(複数指定できます)
  • --template:本文の代わりにテンプレートファイルを使用します
  • --template-vars:テンプレート変数を指定する JSON 文字列
ステップ 5:確認して送信する

送信する前に、ユーザーに確認します。

Ready to send:
From: [Sender Email]
To: [Recipient Email]
Subject: [Subject]
Content Type: [Plain/HTML]
Attachments: [List of attachments or None]

Proceed to send? (y/n)

確認が取れたら、収集したすべてのパラメーターを指定して send_email.py スクリプトを実行します。

会話の例

例 1:Gmail の基本的なメール

ユーザー:[email protected] に件名「Hello」のメールを送信して

スキル:メールの送信をお手伝いします。いくつか詳細を教えてください。

  1. 本文:メール本文には何を書きますか?
  2. 送信元のメールアドレス:どのメールアドレスから送信しますか?

ユーザー:本文は「Hi John, just saying hello!」で、[email protected] から送信して

スキル:Gmail をお使いのようです。Gmail では、通常のパスワードではなくアプリパスワードが必要です。

アプリパスワードを取得するには:

  1. https://myaccount.google.com/apppasswords にアクセスします
  2. サインインして「メール」用のアプリパスワードを作成します
  3. 16 文字のパスワードをコピーします

Gmail のアプリパスワードを入力してください:

ユーザー:abcd efgh ijkl mnop

スキル:送信の準備ができました:

送信しますか?(y/n)


例 2:デフォルトの差出人を使った Markdown の本文

ユーザー:[email protected] に、件名「AR グラス業界分析」、本文は[ユーザーが提供した Markdown レポート]でメールを送信して

スキル:メールの送信をお手伝いします。差出人のメールアドレスが指定されていないため、デフォルトのメールアドレス [email protected] を使って送信します。

また、本文が Markdown 形式であることを確認しました。レポートを読みやすくするため、美しい HTML 形式に自動変換します。

126 メールから送信するには、SMTP 認証コードが必要です。

認証コードの取得手順:

  1. 126 メールにログイン → 設定 → POP3/SMTP/IMAP
  2. 「IMAP/SMTP サービス」を有効にします
  3. 表示された認証パスワードをコピーします

[email protected] の認証コードを入力してください:

ユーザー:[認証コードを入力]

スキル:メールを送信する準備ができました:

  • 差出人:[email protected]
  • 宛先:[email protected]
  • 件名:AR グラス業界分析
  • 形式:Markdown → HTML(自動変換)
  • 本文のプレビュー:見出し、リスト、表などの書式付きコンテンツが含まれます

送信を確認しますか?(y/n)


例 3:本文が不足している場合にデフォルトの差出人を使用する

ユーザー:[email protected] に、件名「プロジェクトレポート」でメールを送って

スキル:メールの本文を確認する必要があります。

メール本文には何を書きますか?

ユーザー:プロジェクトは完了し、すべてのマイルストーンを達成しました。

スキル:デフォルトのメールアドレス [email protected] を使って送信します。

126 メールから送信するには、SMTP 認証コードが必要です。

認証コードの取得手順:

  1. 126 メールにログイン → 設定 → POP3/SMTP/IMAP
  2. 「IMAP/SMTP サービス」を有効にします
  3. 表示された認証パスワードをコピーします

[email protected] の認証コードを入力してください:

ユーザー:[認証コードを入力]

スキル:メールを送信する準備ができました:

  • 差出人:[email protected]
  • 宛先:[email protected]
  • 件名:プロジェクトレポート
  • 本文:プロジェクトは完了し、すべてのマイルストーンを達成しました。

送信を確認しますか?(y/n)


例 4:ユーザーが任意の差出人メールアドレスを指定する

ユーザー:/home/user/q4_report.pdf を添付して、[email protected] から [email protected] に第 4 四半期の業績レポートを送信して

スキル:メールの送信をお手伝いします。メールの本文を入力してください。

第 4 四半期の業績について、メールには何を書きますか?

ユーザー:第 4 四半期の財務レポートを添付しました。ご不明な点があればお知らせください。

スキル:Outlook をお使いのようです。Outlook アカウントのパスワード(Web ログインと同じもの)が必要です。

Outlook のパスワードを入力してください:

ユーザー:mypassword123

スキル:送信の準備ができました:

  • 差出人:[email protected]
  • 宛先:[email protected]
  • 件名:第 4 四半期の業績
  • 本文:第 4 四半期の財務レポートを添付しました。ご不明な点があればお知らせください。
  • 添付ファイル:/home/user/q4_report.pdf

送信しますか?(y/n)


例 5:カスタム SMTP

ユーザー: [email protected] から [email protected] にメールを送信してください

スキル: いくつか情報を確認させてください。

  1. 件名: メールの件名を教えてください。
  2. 内容: メール本文を教えてください。

ユーザー: 件名は Test Email、内容は Hello World です

スキル: カスタムドメイン([email protected])を使用しているため、SMTP の設定が必要です。

  1. SMTP サーバー: SMTP サーバーのアドレスを教えてください。
  2. SMTP ポート: 使用するポートを教えてください。
  3. ユーザー名: SMTP のユーザー名を教えてください。
  4. パスワード: SMTP のパスワードを教えてください。

ユーザー: サーバーは smtp.mydomain.com、ポートは 587、ユーザー名は [email protected]、パスワードは secret です

スキル: 送信する準備ができました。

送信しますか?(y/n)

スクリプトコマンドのリファレンス

すべての情報を収集したら、適切なパラメーターを指定してスクリプトを実行します。

基本コマンド
python3 scripts/send_email.py \
  --to [email protected] \
  --subject "Email Subject" \
  --content "Email body content" \
  --smtp-server smtp.gmail.com \
  --smtp-port 587 \
  --username [email protected] \
  --password your-password-or-app-password
HTML メール
python3 scripts/send_email.py \
  --to [email protected] \
  --subject "Email Subject" \
  --content "<h1>Hello</h1><p>HTML content</p>" \
  --content-type html \
  --smtp-server smtp.gmail.com \
  --smtp-port 587 \
  --username [email protected] \
  --password your-password
添付ファイル付きメール
python3 scripts/send_email.py \
  --to [email protected] \
  --subject "Email Subject" \
  --content "Email body" \
  --attach /path/to/file1.pdf \
  --attach /path/to/file2.csv \
  --smtp-server smtp.gmail.com \
  --smtp-port 587 \
  --username [email protected] \
  --password your-password
テンプレートを使用したメール
python3 scripts/send_email.py \
  --to [email protected] \
  --subject "Email Subject" \
  --template assets/simple-notification.html \
  --template-vars '{"title":"Notification","message":"Your report is ready!"}' \
  --content-type html \
  --smtp-server smtp.gmail.com \
  --smtp-port 587 \
  --username [email protected] \
  --password your-password
SSL 接続(TLS の代わり)
python3 scripts/send_email.py \
  --to [email protected] \
  --subject "Email Subject" \
  --content "Email body" \
  --smtp-server smtp.gmail.com \
  --smtp-port 465 \
  --use-ssl \
  --username [email protected] \
  --password your-password

SMTP サーバー設定のリファレンス

プロバイダーSMTP サーバーポート暗号化方式パスワードの種類ユーザー名
Gmailsmtp.gmail.com587TLSアプリパスワードメールアドレス全体
Gmailsmtp.gmail.com465SSLアプリパスワードメールアドレス全体
Outlooksmtp.office365.com587TLSアカウントのパスワードメールアドレス全体
QQ Mailsmtp.qq.com587TLS認証コードメールアドレス全体
QQ Mailsmtp.qq.com465SSL認証コードメールアドレス全体
163 Mailsmtp.163.com465SSL認証コードメールアドレス全体
163 Mailsmtp.163.com994SSL認証コードメールアドレス全体
126 Mailsmtp.126.com465SSL認証コードメールアドレス全体
126 Mailsmtp.126.com25SSL認証コードメールアドレス全体
SendGridsmtp.sendgrid.net587TLSAPI キーapikey
SendGridsmtp.sendgrid.net465SSLAPI キーapikey
Mailgunsmtp.mailgun.org587TLSSMTP パスワードダッシュボードから

インストール

このスキルを使用する前に、必要な Python 依存関係をインストールします。

pip install -r requirements.txt

これにより、自動で Markdown を HTML に変換するために必要な markdown ライブラリ(バージョン ≥3.4.0)がインストールされます。

リソース

scripts/send_email.py

メールを送信するためのメインの Python スクリプトです。以下をサポートしています。

  • プレーンテキストと HTML のコンテンツ
  • 複数のファイル添付
  • 変数置換に対応したメールテンプレート
  • TLS および SSL 暗号化
  • カスタムの差出人名
references/smtp-servers.md

Gmail、Outlook、126、QQ、163、SendGrid、Mailgun、Aliyun を含む、一般的な SMTP サーバーの設定です。

assets/

メールテンプレート:

  • simple-notification.html - 基本的な通知テンプレート
  • report-summary.html - 指標グリッドを含む、プロフェッショナルなレポート用テンプレート

コメント