trigger.private - メールベースのリマインダーシステム

2025年7月12日

概要

trigger.privateは、メールとesaを連携させたリマインダーシステムです。

  • メールで送られてきた内容をesaに保存
  • esaに保存された記事からランダムにメールでリマインド

主要プログラム

1. mail-to-stock

  • 機能: Gmailから信頼できるメールアドレスからのメールを取得し、esaのtrigger.privateカテゴリに投稿
  • 動作:
    • 5分ごとにcronで実行
    • 最新5件のメールをチェック
    • 信頼できるメールアドレスリストと照合
    • メール本文と添付ファイル(画像等)をstorageディレクトリに保存
    • esaに新規記事として投稿(WIP状態)
    • 送信済みのメールIDをsent.txtに記録
  • 信頼できるメールアドレス:
    • ホワイトリスト形式で管理

2. stock-to-mail

  • 機能: esaのtrigger.privateカテゴリからランダムに記事を選んでメール送信
  • 動作:
    • 3時間ごとにcronで実行
    • 3つの記事を選択:
      1. watchedフラグ付きからランダムに1つ
      2. 最新の記事1つ
      3. starフラグ付きからランダムに1つ
    • template.erbを使ってHTMLメールを生成
    • Amazon SES経由でメール送信

3. img-to-stock

  • 機能: 画像ファイルを直接esaのtrigger.privateカテゴリにアップロード
  • 動作:
    • img.privateから呼び出される
    • ファイルをesaにアップロード
    • 画像を含む新規記事を作成
    • 作成された記事をブラウザで開く

4. move-unwatched-posts-to-archive

  • 機能: unwatchedな記事をArchived/に移動
  • 動作:
    • showオプション: 移動対象の一覧表示
    • moveオプション: 実際の移動実行
    • レート制限を考慮した処理

ディレクトリ構造

  • /storage/: メールの内容と添付ファイルを保存
    • 各メールはYYYY-MM-DD-HHMMSS-ハッシュ値/形式のディレクトリに保存
    • 0.txt: メール本文
    • その他: 添付ファイル
  • /storage/sent.txt: esaに送信済みのメールIDリスト
  • /archive/: bulk_upload関連ファイル
  • /pxd/: アイコン画像のソースファイル

設定ファイル

  • template.erb: トリガーメールのHTMLテンプレート(Bootstrap使用)
  • makefile: 各種コマンドのショートカット

Triggerシステムに関する結城メルマガの過去記事

Triggerシステムについては、これまで結城メルマガで継続的に紹介してきました。主な記事は以下の通りです:

Vol.615(2024年1月9日)「学びを定着させるTriggerシステムと、ローカルなWebアプリ群「.private」(ドット・プライベート)について」

リンク: https://link.hyuki.net/mm615

  • Triggerシステムの最も詳しい説明記事
  • 2021年から約3年間使い続けている実績を紹介
  • mail-to-stock、img-to-stock、stock-to-mailの3つのコマンドの詳細説明
  • 400個の「なるほど」がストックされていることを報告
  • 「.private」プロジェクト群の一部としての位置づけ
  • システム概要図も掲載

Vol.591(2023年7月25日)「自分が読んだ本のスクリーンショットを自分あてに送って復習する「Trigger」システムのバージョンアップ」

リンク: https://link.hyuki.net/mm591

  • 大規模バージョンアップの経緯を詳しく説明
  • 「プログラミング欲」から始まった改良作業の過程
  • fetch-mail → mail-to-esa → esa-to-mail の開発段階
  • esaを活用した新アーキテクチャへの移行
  • ロゴマークも新しくデザイン

Vol.610(2023年12月頃)「本にメモを書き込みますか? - 学ぶときの心がけ」

リンク: https://link.hyuki.net/mm610

  • 読書の心がけの文脈でTriggerシステムを紹介
  • 復習システムとしての有効性を説明
  • 3時間に1度、ランダムに画像を送る仕組みの概要

記事の一覧

Triggerシステム関連記事は以下にまとめられています:
https://memo.hyuki.com/20231224202412/

時系列での発展

  • 2021年:Triggerシステム開始
  • 2023年7月:esaを活用した大規模バージョンアップ(Vol.591)
  • 2024年1月:名前の整理と.privateプロジェクト群への統合(Vol.615)

これらの記事を通じて、Triggerシステムが「自分が学んだことを思い出す引き金」として継続的に改良され、実際の学習に活用されてきた様子が分かります。

(2025年7月12日)