Gmailはまさに必要なメッセージを見つけられます。Googleはあなたが所有するすべてを書き出せます。その2つを結ぶものが何もありません。
「この検索結果を選んで、送信者をスプレッドシートに書き出す」というボタンは、Gmailのどこにもありません。それが正直な出発点であり、この質問が繰り返し尋ねられる理由です。
ですから問いはどのボタンを押すかではありません。4つの回避策のうち、あなたが本当にやろうとしていることにどれが合うかです。
| 手段 | 向いている用途 | 代償 |
|---|---|---|
| その他の連絡先 | これまでメールを送ったすべての相手 | クリック3回、ただし絞り込みは一切なし |
| 連絡先のエクスポート | 保存済み連絡先のきれいなCSV | 連絡先だけで、やり取りの相手ではない |
| Google Takeout | メールボックス全体のアーカイブ | 一覧ではなくアーカイブファイル |
| Apps Script | 特定の検索から得たアドレス | 半日、そしてタイムアウトする |
| アドオン | 同じことを、半日かけずに | 無料枠には上限がある |
この表を上から順に検討してください。この問いにたどり着く人の多くは1行目を探していて、その存在を聞いたことがありません。
1. その他の連絡先――多くの人が見つけられない無料の答え
誰かにメールを送って保存していないなら、Googleがすでに保存してくれている可能性が高いです。Google 連絡先ではこれをその他の連絡先と呼び、他を大きく引き離して最速の手段です。
contacts.google.comを開く- 左のサイドバーでその他の連絡先をクリック
Google自身の説明はこうです。"If you email someone but you haven't added them as a contact, Google Contacts automatically saves their email address in your 'Other contacts' group."
誰も触れない点が2つあります。
パソコン限定です。iPhone、iPad、Androidではその他の連絡先はまったく表示されない、とGoogleは明言しています。
そして無効にできます――しかも別々の2か所で。Googleアカウントの情報共有と連絡先 → 連絡先 → やり取りから保存された連絡先情報と、Gmailの設定 → オートコンプリートの連絡先を作成で、選択肢の1つが 「連絡先を自分で追加する」 です。
その他の連絡先が空なら、原因はこのどちらかの設定です。機能が壊れていると結論づける前に、確認する価値があります。
難点は、その他の連絡先が区別のない一山であることです。絞り込みも、期間指定も、「このラベルの人だけ」もありません。やり取りの相手を全員ではなく一部だけ欲しいなら、読み進めてください。
2. 連絡先をCSVに書き出す
目的の相手が実際に連絡先に入っているなら:
contacts.google.comを開く- 目的の連絡先にチェックを入れる。すべてなら、任意の連絡先にチェックを入れてから左上の選択操作 → すべて
- 右上のその他の操作 → エクスポート
- Google CSV を選ぶ
- エクスポートをクリック
このCSVはGoogle スプレッドシートやExcelでそのまま開けます。
制約は現実的で、しかも先ほどと同じものです。 書き出されるのは連絡先レコードです。メールの中身は関知しないため、「直近6か月に label:clients でやり取りした全員」には答えられません。連絡先とGmailは、たまたま同じアカウントを共有している別の製品です。
3. Google Takeout――正しそうに聞こえて、そうではない手段
takeout.google.com のTakeoutは、3つの手順でGmailを書き出します。データの選択 → アーカイブの調整 → アーカイブの受け取り。返ってくるのはメッセージ本体、ヘッダー、添付です――メールボックス全体が、別のメールクライアントに取り込むための書庫形式で。
バックアップとしては本当に優秀です。アドレスの一覧としては力不足です。
- 列の構造がありません。 スプレッドシートではありませんし、そうなりもしません。アドレスを取り出すには自分でアーカイブを解析することになります。
- 重複除去がありません。 40のスレッドに登場する連絡先は40回登場します。
- 実質的な範囲指定ができません。 どのラベルを含めるかは選べますが、「直近6か月だけ」や「この送信者だけ」は選べません。
- 即時ではありません。 書き出しはアカウントの大きさによって "could take from a few minutes to a few days" とGoogleは注記しています。暗号化されたメッセージは暗号化されたままです。
Takeoutはメールボックスをバックアップしたり移行したりするには正しい道具です。リストを作るには誤った道具です。
4. Apps Script――完全な制御と、6分の壁
これが自作の道であり、仕事に本当に噛み合う最初の手段です。Apps ScriptのGmailサービスは必要なものをすべて提供します。メールを検索し、一致したスレッドをたどり、各メッセージから From、To、Cc の項目を読み、結果をシートに書き出す。
範囲指定は検索文字列の中で行われます――そして同じ文字列がGmailの検索ボックス、Apps Script、Gmail APIで通用するので、覚えるのは一度きりです。
label:clients newer_than:6m has:attachment
知っておく価値のある演算子
| 演算子 | 働き | 例 |
|---|---|---|
label: | 1つのGmailラベルに限定 | label:clients |
from: | 送信者、またはドメイン全体 | from:@acme.com |
to: | あるアドレス宛のメッセージ | to:sales@yourcompany.com |
cc: | あるアドレスが写しに入っていたメッセージ | cc:me |
newer_than: | 相対的な新しさ | newer_than:6m |
older_than: | ある時点より前のすべて | older_than:2y |
after: / before: | 絶対的な日付の境界 | after:2026/01/01 |
has:attachment | 添付ファイルのあるメッセージのみ | has:attachment |
list: | メーリングリストのアドレス | -list:news@example.com |
category: | Gmailの受信トレイのカテゴリ | category:primary |
list: は過小評価されています。マイナスを付ければ、うっかり集め続けてしまうニュースレターを外すきれいな方法になります。
自由に組み合わせてください。label:conference-2026 newer_than:3m has:attachment は実用的で有用なリストです。in:anywhere はそうではありません――迷惑メールとゴミ箱を引きずり込みます。
コードを1行書く前に、Gmailで件数を確認してください。 クエリが4,000スレッドを返すなら緩すぎますし、スクリプトがどれほど優秀でもシートはノイズになります。
3つの落とし穴
- アドレスの項目は配列ではなく文字列です。
getTo()とgetCc()はカンマ区切りの1つの文字列を返し、各値は"表示名" <addr@example.com>の形で届きます。使える形になる前に、分割し、トリムし、解析することになります。 - 6分。 Apps Scriptは1回の実行を6分で打ち切ります。大きなメールボックスには、保存したカーソルと時間主導型トリガーによるバッチ処理が必要です――この手段が要する半日の大半がこれです。
- 1日あたりの読み取り上限。 個人のGmailアカウントで20,000件、Google Workspaceで50,000件。
どれも致命的ではありません。この手段が10分ではなく半日かかる理由がこれだ、というだけです。
Contact Extractorの位置づけ
Contact Extractor は、半日を要さない手段4です。あなた自身のGoogleアカウントの中でApps Scriptのアドオンとして動き、同じGmailの検索構文を受け取り、結果を重複のないシートに書き出します。
このページが説明している具体的な隙間のために存在しています。Takeoutが渡すのはアーカイブで、連絡先はあなたのメールを見られない。その隙間が製品のすべてです。
ステップ1:Gmailでクエリをテストする
まずGmailで検索を組み立ててください。何かを確定する前に結果を目で見られます。上で述べたとおりです。
ステップ2:書き出し先のシートでアドオンを開く
リストを着地させたいGoogle スプレッドシートを作成するか開きます。
拡張機能 → Contact Extractor by 8apps → Open App
ステップ3:検索をフィルタとして再現する
いまテストしたのと同じ範囲を入力します――Gmailのラベル、From、To、件名、期間の指定、そして Advanced Options の下にある詳細な演算子。
入力するそばからGmail互換のクエリが組み立てられ、Verify がそれをGmailで開くので、テストしたのと同じメッセージ集合を見ていることを確認できます。4,000行のシートになる前に誤りを捕まえる工程です。
ステップ4:どの項目から読むかを選ぶ
メッセージ全体を吐き出すのではなく、各メッセージのどの部分を読むかを選びます。一致するたびに、メールアドレスとそれに紐づく名前が返ります。
| 項目 | こんなときに |
|---|---|
| From | あなたに書いてきた人が欲しいとき |
| To | メッセージの宛先だった人が欲しいとき |
| CC | スレッドに巻き込まれた全員が欲しいとき――多くの場合いちばん広く有用な網 |
| BCC | 自分の送信済みメールをたどっているとき |
| Reply-to | 送信元とは別のアドレスに返信を誘導する送信者がいるとき |
| 件名 | 転送された問い合わせなど、件名にアドレスが現れるとき |
| メッセージ本文 | 署名や本文中にアドレスが書かれているとき |
狭く始めてください。From と CC で実際のケースの大半を覆えます。メッセージ本文を加えると捕捉範囲は大きく広がりますが、フッターに書かれたno-replyアドレスもすべて引き込みます。
ステップ5:自社ドメインを除外する
Exclude domains の欄に自社ドメインを入れてください――完全なアドレスではなく yourcompany.com だけです。これがないと、たいていの書き出しは大部分が自社の同僚になります。
ステップ6:保存して抽出する
アドレスは重複を除きながらシートに書き込まれます。40のスレッドに登場する人も、1回だけ登場します。
元になるメッセージ集合が増え続けるなら――運用中のラベル、共有エイリアス、進行中のキャンペーン――タスクを1時間ごとの実行に設定すれば、シートはひとりでに最新の状態を保ちます。
シートを整える
どの手段を取ったにせよ、仕上げの一通しは価値があります。
- no-replyアドレスを除外する。
=FILTER(A2:A, NOT(REGEXMATCH(A2:A, "(?i)no-?reply|donotreply"))) - ドメインで束ねて、実際にどの企業が含まれているかを見る:
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A2:A, "@(.*)$"))) - 複数の書き出しをまとめたなら重複を再確認する:
=UNIQUE(A2:A)
送信する前に
自分のメールボックスからアドレスを抽出することは、記録の作業です。そのリストにメールを送ることはマーケティングの行為であり、規制の対象になるのは後者だけです。
Googleの送信者ガイドラインは率直です。"Don't send messages to people who didn't sign up to get messages from you"、そして "Don't purchase email addresses from other companies."
FTCも同様に明確で、B2Bの適用除外はないとしています――"The law makes no exception for business-to-business email" ――さらに自動的なアドレス収集を、CAN-SPAM法における加重違反の一つに挙げています。
実務的に言えば、本当にやり取りのあった相手を残してください。list: に一致するもの、no-replyの送信者、CCの連鎖にしか現れなかったアドレスは落とす。実際のやり取りから作られたリストは、説明がつきやすいだけでなく、返信が返ってくる可能性もはるかに高いのです。
権限についての注記
あなたのGmailを読むツールはどれも、Google自身の同意画面を通じてGmailへのアクセスを求めます。何を求めているかは読むべきです。インストールするものについて確認する価値があるのは2点です。
- あなたのGoogleアカウントの中でメールを処理するのか、それとも第三者のサーバーへ送るのか。
- Googleのセキュリティ審査を通っているか。
Contact Extractorはあなた自身のGoogleアカウントの中でApps Scriptのアドオンとして動き、あなたが選んだシートにのみ書き込み、CASA 2の認証を受けています。フィルタに一致したメッセージの、あなたが選んだ項目だけを読み――そこで見つけたメールアドレスと名前を取り出します。それ以外は何もしません。
どの手段を使うべきか
| やりたいこと | 使うもの |
|---|---|
| これまでメールを送った全員、絞り込みは不要 | その他の連絡先 |
| すでに保存済みの連絡先のCSV | Google 連絡先 → エクスポート |
| メールボックス全体のバックアップや移行 | Google Takeout |
| 特定の検索から得たアドレス、コードは書ける | Apps Script |
| 特定の検索から得たアドレス、コードは書けない | アドオン |
| 1つのスレッドから3件のアドレス | 正直に言えば、コピーして貼り付け |
最後の行は重要です。すべての仕事に道具が要るわけではありません。
出典
- 連絡先をエクスポートする – Google 連絡先ヘルプ
- 連絡先を追加または移動する / その他の連絡先 – Google 連絡先ヘルプ
- 連絡先として保存・候補表示される相手を変更する – Google 連絡先ヘルプ
- Googleのデータをダウンロードする および Gmailのデータをダウンロードする
- Gmailで使用できる検索演算子
- Apps Script – GmailMessage reference および Quotas for Google Services
- メール送信者のガイドライン – Gmailヘルプ
- CAN-SPAM Act compliance guide – FTC