0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GmailのPOP3廃止をきっかけに、代替メールサービス「CloudInbox」を個人開発した話

0
Posted at

GmailのPOP3廃止をきっかけに、代替メールサービス「CloudInbox」を個人開発した話

はじめに

Gmailの仕様変更により、これまで当たり前に使えていた POP3による外部メール取得 が使えなくなりました。
業務や個人開発で「POP3前提」の運用をしていた方にとっては、地味ですがかなり困る変更だったと思います。

この記事では、その代替として個人開発した CloudInbox というサービスについて、

  • なぜ作ったのか
  • どんな機能があるのか
  • どんな技術・開発スタイルで作ったのか

を紹介します。


CloudInboxとは

CloudInbox は、POP3で取得したメールをクラウド上のメールボックスに集約し、
Webブラウザやスマホから安全に閲覧・送信できるメールサービス です。

特徴としては、

  • GmailのPOP3廃止後も使える代替Inbox
  • メール本文・添付ファイルは暗号化して保存
  • PC / スマホの両方に対応
  • 送信機能も制限付きでサポート

という構成になっています。

👉 サービスURL
https://cloudinbox.cloud


CloudInboxを作った理由

一言で言うとこれです。

GmailのPOP3廃止により、代替機能が必要になったから

自分自身が、

  • 外部メールサーバー
  • POP3前提の運用
  • Gmailに集約して確認するワークフロー

を使っていたため、
今回の仕様変更はかなり致命的でした。

メール転送などでの回避策もありますが、

  • セキュリティ面が不安
  • 運用が複雑になる
  • そもそも用途に合わない

と感じる場面も多く、
それなら 「POP3前提で完結するクラウドInbox」 を作ろう、というのが出発点です。


CloudInboxの主な機能

現在提供している(MVPとして実装した)主な機能は以下です。

  • POP3による外部メール受信
  • メール本文・添付ファイルの暗号化保存
  • Webブラウザでのメール一覧・詳細表示
  • Android / iOS アプリ対応
  • 制限付きのメール送信機能
  • Freeプラン / 有料プランを想定した設計

送信機能について

CloudInboxでは 送信も可能 ですが、

  • 利用回数
  • 利用条件
  • プラン

などに制限を設けています。

これは、

  • スパム対策
  • 送信元IPやSMTP制約
  • 個人開発としての運用コスト

を考慮した結果です。

「Gmailの完全な代替」ではなく、
受信を主軸にしつつ、必要最低限の送信もできるInbox
という立ち位置を意識しています。


CloudInboxの構築について

ここからは技術・開発スタイルの話です。

技術スタック

主な構成は以下の通りです。

  • フロントエンド(Web)
    • Vue 3
    • Vuetify
  • モバイルアプリ
    • Flutter
  • バックエンド
    • Firebase
      • Authentication
      • Firestore
      • Cloud Functions
      • Hosting
  • メール関連
    • POP3(受信)
    • SMTP(制限付き送信)
  • セキュリティ
    • Secret Manager
    • KMS を用いた暗号化管理

Vue経験あり、Flutterは未経験

自分は、

  • Vue:業務・個人開発で経験あり
  • Flutter:未経験

という状態でのスタートでした。

通常であれば Flutter の学習コストが高くなりがちですが、
今回は 開発スタイルそのものを変える ことで乗り切りました。


MVP仕様はChatGPTと相談しながら作成

まず最初に行ったのは、
「何を作らないか」を決めるためのMVP整理 です。

このMVP仕様は、

  • 機能を詰めすぎていないか
  • 個人開発として現実的か
  • Gmail代替として最低限何が必要か

といった観点を、
ChatGPTと壁打ちしながら まとめていきました。

結果として、

  • 受信を主軸にする
  • 送信は制限付きでサポートする
  • 高機能なメールクライアントは目指さない

といった 割り切ったMVP に落とし込めたのは、
一人で考えていたら難しかったと思います。


cc-sddを使った仕様駆動開発

MVP仕様が固まったあとは、
cc-sdd(仕様駆動開発) の形で実装を進めました。

① MVP仕様書をMarkdownで作成

  • doc/ ディレクトリに
  • ChatGPTと整理した内容をもとに
  • MVP仕様書のみ をMarkdownで作成

コードはまだ1行も書かず、
「やること・やらないこと」を明文化することに集中しました。

/kiro:steering を実行

この仕様書をもとに /kiro:steering を実行し、

  • プロジェクトの方向性
  • 技術的な前提
  • 守るべき制約

をAIに共有します。

③ 実装・変更は /kiro:spec-init

その後は、

  • 「制限付き送信を追加したい」
  • 「Freeプランの制限を入れたい」

といった要望を
/kiro:spec-init で都度追加する形で進めました。

MVP → 実装 → 微調整 のループが非常に速かったです。


完全バイブコーディング(Cursor)で構築

実装フェーズは ほぼCursor主導 です。

  • Flutterの画面構成
  • Firebase連携
  • POP3 / SMTP 周りの処理
  • UI調整やエラー対応

まで、
「どう書くか」より「どうしたいか」 を伝える形で進めました。

特に未経験だったFlutterでは、

「Web版と同じ構成でこの画面を作りたい」
「このVueのUIをFlutterに寄せたい」

といった指示だけで、
十分に実用的なコードが出てくるのはかなり衝撃でした。


作ってみて思ったこと

  • GmailのPOP3廃止は、想像以上に影響範囲が広い
  • 「制限付き送信」という割り切りは現実的
  • バイブコーディング × 仕様駆動は個人開発と相性がいい
  • 未経験のFlutterでも、ちゃんとサービスになる

おわりに

CloudInboxは、

GmailのPOP3廃止をきっかけに生まれた、
受信を主軸にしつつ、制限付きで送信も可能なクラウドInbox

です。

  • POP3代替を探している方
  • Gmailに依存しないメール運用を考えている方
  • AI前提の個人開発に興味がある方

の参考になれば嬉しいです。

👉 CloudInbox
https://cloudinbox.cloud

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?