MelTalk(メルトーク) の画面
開発中

MelTalk(メルトーク)

APP

Overview

「メールを溶かして、会話にする。」定型の挨拶・署名・引用履歴を取り除いてメールをチャットのように表示し、チャット感覚の短文をビジネスメールに整えて送るスマホアプリ。

Tech Stack

  • React Native
  • Expo
  • TypeScript
  • IMAP

開発中のため、まだ公開していません

View Code

メールを溶かして、会話にする

就活で企業の採用担当者と面接の日程を決める。研究室で指導教員に資料を出し直す。インターン先の取引先に短い確認を送る。学生のうちから、メールでやり取りする場面は思った以上にたくさんあります。

ところが、普段 LINE や Slack で話している僕たちにとって、メールは少し重たい道具です。本題の前後には「いつもお世話になっております」と署名が挟まり、その下には過去のやり取りの引用が積み重なっていきます。たった一言「15時で大丈夫です」と返したいだけなのに、件名を考え、挨拶を考え、署名を付けなければなりません。受信トレイには、人からの連絡とメルマガや自動通知が同じ列に並んでいます。

MelTalk(メルトーク)は、この重たさを溶かすためのスマホアプリです。コンセプトは「メールを溶かして、会話にする。」です。まだ開発中で、一般には公開していません。

できること

メールを、チャットのように読む

同じ相手とのメールを、時系列のタイムラインとして表示します。相手のメッセージは左、自分のメッセージは右の吹き出しです。そのとき、冒頭の定型の挨拶や宛名、末尾の署名、過去のメールの引用を自動で取り除き、その1通で新しく書かれた部分だけを吹き出しに出します。

取り除いた部分が大事なこともあるので、元のメールはワンタップでいつでも開けます。会話は相手ごとにまとめ、途中で件名が変わったところには区切りを入れます。

人からの連絡と、通知を分ける

受信したメールを「対話」と「通知・メルマガ」に自動で振り分け、別のタブに分けます。チャットの画面に並ぶのは、往復が発生する人との会話だけです。振り分けを間違えたときは、送信元ごとに自分で直せて、以後のメールにも反映されます。

短く打って、メールで送る

返信は、チャットと同じ感覚の短文で打てます。送るときに、相手に合った挨拶・宛名・名乗り・結び・署名を付けて、ちゃんとしたビジネスメールの形に整えます。相手のメールアプリからは、普通のメールとして届きます。返信の件名や、スレッドをつなぐための情報も、通常のメールアプリと同じように付けるので、相手の側でスレッドが崩れることもありません。

文面の調子は、相手との関係を「社外」「学内・社内」「初めて」の3つから選んで変えます。最初は受信したメールから推定し、自分で変更もできます。メールは送ったら取り消せないので、送る前には必ず整えたあとの全文を確認でき、そこで直せます。「りょ!」のようなくだけた表現が残っていると、警告も出します。

中身の話

アプリは React Native(Expo)と TypeScript で作っていて、iOS から先に出し、Android はあとから対応する予定です。

メールの読み解きは、端末の中のルールで

挨拶・署名・引用を取り除く方法として、最初に「ルールで書いたらどこまでできるか」を試作で確かめました。架空のメールを17通用意し、そのうち12通はルールを作りながら使い、残りの5通はルールを書き終えてから作って、調整せずに評価しました。作りながら使ったサンプルでは必ず高い点が出るので、それは精度の目安にならないからです。

結果は、ルールを作りながら使った12通はすべて成功、初見の5通は3通で失敗でした。引用の形式やメルマガのヘッダーのように形の決まったものはルールで十分に判定できる一方、「平素より大変お世話になっております」のような言い回しの揺れや、本文と署名の境目があいまいなものに弱いことが分かりました。いちばん怖かったのは、句点のない箇条書きを署名と間違えて、本文を消してしまったケースです。

そこで、解析は端末の中のルールを基本にしつつ、「迷ったら残す」を徹底することにしました。取り除いた結果、本文が空になってしまうときは、元の本文をそのまま出します。消しすぎるくらいなら、少し長いほうがましです。

同じ考え方で、送信元が info@ のようなアドレスだというだけでは通知に分類しないことにしました。試作の初見サンプルで、人が info@ から送ってきた最初の連絡を通知に振り分けてしまったからです。人からの連絡が通知のタブに埋もれるのは、MelTalk でいちばん重い間違いなので、返信できない送信専用のアドレスと、配信用のヘッダーで判定するように変えています。

サーバーを持たない

メールの取得・解析・保存は、すべて端末の中で完結させています。メールの本文を外のサーバーに預けないためです。メールサーバーとの通信(IMAP や SMTP、メールの形式の読み解き)は、暗号化した通信路の部分だけをライブラリに任せ、残りは自分で TypeScript で書きました。こうするとネイティブの部品を最小限にでき、用意したメールのファイルや偽のサーバーを相手に、単体テストで確かめられます。

iCloud メールには、Apple の「アプリ用パスワード」でつなぎます。パスワードは端末の安全な領域(Keychain)にだけ保存します。

いまの状態

iOS 向けの最初の版は、架空のメールで動く状態まで来ています。チャット風のタイムライン、挨拶・署名・引用のノイズカット、対話と通知の分離とその手動修正、返信と新規作成のスマート送信、元のメールの表示、元のメールアプリで開く導線、新着の通知までを実装しました。

残っているのは、実際の Gmail や iCloud メールでの動作確認と、Android への対応です。Gmail は一般に公開するには Google の審査が必要なので、iCloud メールのような IMAP での接続を先に進めています。

MelTalk(メルトーク) を触ってみる

「メールを溶かして、会話にする。」定型の挨拶・署名・引用履歴を取り除いてメールをチャットのように表示し、チャット感覚の短文をビジネスメールに整えて送るスマホアプリ。

開発中のため、まだ公開していません

View Code

ほかの制作実績