2020年11月24日火曜日

Googleフォームのファイルアップロードデータを抽出し、ファイル名を変更して特定フォルダに一括保存する(Google Apps Script)

 Google フォームのファイルアップロードを使ってアップロードされたファイルは、下図のように、「ファイル名 - 名前(Googleアカウントのプロフィール).ファイルの拡張子」という名前になります。


しかしながら、
  1. 申請する人が、代理かもしれない
  2. いつ申請したかファイル名だけでは判別しづらい
という問題があり、ファイル名について

年-月-日_登録者名_ファイル名 - 申請者名(Googleアカウントのプロフィール).ファイルの拡張子

のように、ファイル名の目視だけでもう少しはっきりとわかるようにできたら便利です。
下図はその例です。
  • 登録者名1:テスト2
    • 3ファイル:test1.xlsx, test2.xlsx, test3.xlsx
  • 登録者名2:ほげほげ
    • 1ファイル: test.xlsx
これを、Google Apps Script で実装してみます。
ただし説明を容易にするために、極めてシンプルな構造にしています。

STEP 1. Googleフォームを作成する



今回は例のため、項目は2つ(名前、ファイルアップロード)にしています。メールアドレスの収集なども行いません。ただし、ファイルアップロードは、申請者の Googleアカウントのマイドライブ直下に一旦アップロードする手法になるため、Googleアカウントのログインが必須になります。

作成し終わったら、「回答」タブにある、「スプレットシートの作成」ボタンをクリックし、回答内容を Googleスプレットシートに保存できるようにします。



STEP 2. 一括保存するフォルダを作成


Googleドライブ内に、フォルダを作成します。
ここではサンプルとして、Googleフォームを作成したフォルダ直下に「Attached Documents」というフォルダを作成します。



STEP 3. Google Apps Script を用意する


回答先 Googleスプレットシートを開き、ツールメニューから「スクリプトエディタ」を開きます。


すると上図のようなサンプルコードが出てきます。
これらのコードはすべて削除した上で、下記のリンク先を開いて出てきたテキストを「すべて選択」しコピー、上記コードにペーストしてください。
すると、下図のようになるはずです。

次に Google Apps Scriptのプロジェクトを保存してファイル名をつけてください。
ここでは getAttachedDocuments という名前にします。


次に必要な4つのパラメーターの設定を行います。



OUTPUT_FOLDER_ID


一括出力先フォルダ(例だと、Attached Documents)のフォルダID(下図の赤枠)を調べてコピーし、


それを、Google Apps Script の === FOLDER ID === と置き換えます。

実際のコードは下記の通り
  • var OUTPUT_FOLDER_ID = '=== FOLDER ID ==='; 

INPUT_SpreadSheet_ID


Googleフォームの回答先 GoogleスプレットシートのIDを調べて、コピーし、


それを、Google Apps Script の === Google SpreadSheet ID === と置き換えます。

実際のコードは下記の通り
    •   var INPUT_SpreadSheet_ID ='=== Google SpreadSheet ID ===';
      

    INPUT_SpreadSheet_num


    アップロードされたファイルのURLされている項目の項目番号を調べます。
    今回の場合、項目番号は 0から始まり、A列 = 0、B列 = 1、、、と続きます。

    今回の例は、入力項目は「名前」「ファイルアップロード」の2つです。
    Googleフォームが最初に入力された時刻を自動保存(タイムスタンプ)を保存するため、
    • A列(項目番号 0) = タイムスタンプ
    • B列(項目番号 1) = 名前
    • C列(項目番号 2) = ファイルアップロード(URL、複数の場合にはコンマ区切り)
    となっています。

    そのためファイルアップロードのための項目番号は 2となり
    • var INPUT_SpreadSheet_num = 2; // Item of Attached File Link (start is 0)
    のように値を 2 に置き換えます。

    OUTOUT_FOLDER_name_num


    最終的に下記のファイル名になりますが、このうち「名前」(登録者名)にあたる項目番号を調べます。
    • 年-月-日_登録者名_ファイル名 - 申請者名(Googleアカウントのプロフィール).ファイルの拡張子

    今回の項目番号は 1 となります。
    • A列(項目番号 0) = タイムスタンプ
    • B列(項目番号 1) = 名前
    • C列(項目番号 2) = ファイルアップロード(URL、複数の場合にはコンマ区切り)
    したがって、値を 1 に置き換えます。
    •   var OUTOUT_FOLDER_name_num = 1; // Item of Name (start is 0)

    そしてプロジェクトを保存します。

    STEP 4. 作成した Google Apps Scriptを実行してみる

    まずはいくつかテスト的にフォームに入力します。

    今回のテスト例は下記のようになります。
    申請者のGoogleアカウントプロフィール名(Kimiya Kitani)
    • 登録者名1:テスト2
      • 3ファイル:test1.xlsx, test2.xlsx, test3.xlsx
    • 登録者名2:ほげほげ
      • 1ファイル: test.xlsx

    Google Apps Scirpt(ここでは getAttachedDocumentsで保存)の▶(実行)ボタンをクリックします。
    • 最初の1度だけ後述する許可設定が必要です。
      *Goolge Workspace や G Suite for Education アカウントの場合には、この許可設定を聞いてこないことがあるかもしれません。
    うまくいけば、Attached Documents フォルダ内に、下記のように意図したファイル名になっていると思います。
    いろいろカスタムしたい場合には、
    をダウンロードして、適当に自由に改変してみればよいでしょう。

    許可設定


    1. 「許可を確認」ボタンをクリック

    2. Google Apps Scriptを作成した Googleアカウントを選択


    3. 「詳細」リンクをクリックし、getAttachedDocuments(安全ではないページ)に移動リンクをクリック



    4. getAttachedDocuments に対して必要な権限を許可します。



    2020年11月24日 @kimipooh

    2020年8月28日金曜日

    【検証】Googleグループのメールアドレスを変更し、さらに元の名前に戻せるのか

     Googleグループは、無料版と G Suiteクラウドサービス版があります。それぞれどうなるか試してみます。


    無料版 Googleグループの場合


    古いUIのGoogleグループの場合、グループ名の変更(すなわちメーリングリストのアドレス変更)が可能です。検証の結果、古いグループは削除され、新規取得可能になっています。

    変更前:cseas-tech 

    変更後:cseas-tech2 

    変更自体は問題なくできました。


    Googleドライブの共有


    cseas-tech → cseas-tech2 へ自動変更されていました。


    変更前のGoogleグループは?


    存在しなくなっていました。Web版 Googleグループへのアクセスも「存在しません」となりました。

    Googleグループのアドレスをもとに戻せるか?


    戻せませんでした。
    cseas-tech2 → cseas-tech に名称変更しようとすると、「このグループのメールはすでに使用されています」と出ます。

    変更前のアドレスで Googleグループを「新規」作成できるのか?


    できてしまいました。
    名称変更ではすでに使用されているとでているのに、新規作成できたということは、なにか表示にバグがあるのかなぁと思います。名称を変更した時点で、前のアドレスは存在しなくなったと考えるのが妥当なためです。 



    ただバグだと思われますが、奇妙な事が起こりました。
    新しく作成した cseas-tech について、古い Googleグループの管理UIでは問題ないのに、新しいUIでは、なんと cseas-tech2 だと誤認識してしまっているのです。
    実際のメンバーやグループ名は区別できるようにしているので、 新規作成した cseas-tech であるのは間違いありません。また cseas-tech2 に変更した方は、新旧UIでちゃんと認識しているので、表記のバグだろうなぁとは思います。もしかしたら新しいUIではしばらくキャッシュに残ってしまうのかもしれませんね。




    G Suite の Googleグループの場合


    基本的な動作は無料版 Googleグループと同じでした。
    しかし、次の点で異なります。
    • 変更前のアドレスがエイリアスとして追加されている
    hogehoge @ 独自ドメイン → hogehoge2 @ 独自ドメイン
    に変更した場合

    メインアドレス:hogehoge2 @ 独自ドメイン
    エイリアス:hogehoge @ 独自ドメイン

    となってどちらにも届くということです。
    エイリアスは、G Suiteの特権管理者によって削除できます。
    しかし、もしドメインエイリアスを使っている場合には、そのアドレスは削除できません。

    ドメインエイリアス: hohoho.独自ドメイン

    だとするなら
    メインアドレス:hogehoge2 @ 独自ドメイン
    エイリアス:
     hogehoge @ 独自ドメイン(削除可能)
     hogehoge @ hohoho.独自ドメイン(削除不可)

    となるわけです。まぁドメインエイリアスのアドレスを使っていないのなら無視できる問題ではあります。

    もとのアドレスに戻した場合


    hogehoge2 @ 独自ドメイン → hogehoge @ 独自ドメイン

    と戻した場合
    メインアドレス:hogehoge @ 独自ドメイン
    エイリアス:hogehoge2 @ 独自ドメイン(削除可能)

    となります。
    ドメインエイリアス(hohoho.独自ドメイン)があるなら、

    メインアドレス:hogehoge @ 独自ドメイン
    エイリアス:
     hogehoge2 @ 独自ドメイン(削除可能)
     hogehoge2 @ hohoho.独自ドメイン(削除不可)
     hogehoge @ hohoho.独自ドメイン(削除不可)

    とまぁエイリアスが残っていくわけです。
    これは、hogehoge2 @ 独自ドメインのGoogleグループを新たにとったとしても、変化がありません(hogehoge @ 独自ドメインの方に、hogehoge2 @ hohoho.独自ドメイン が付与されたまま変更不可になってしまう)。これは少し厄介かもしれませんね。現状操作できる範囲でみると、これを解消するには一旦グループを削除して作り直す必要がありそうです。

    2020年8月28日 @kimipooh





    2020年7月28日火曜日

    【備忘録】Web版 Gmailで、Yahoo! Japan(@yahoo.co.jp)メールをPOP3受信する方法

    Gmailヘルプコミュニティで何度かできないという質問があったこともあり、久しぶりに手順を確認してみました。

    STEP 1.  @yahoo.co.jp側でPOP3受信設定を有効にする


    メールソフトで送受信するには(Yahoo!メールアドレスの場合)にある Yahooの説明の通り、

    1. POP3の有効化
    2. Yahoo!ダイレクトオファーの登録
    をチェックしてください。無料版Yahooメールアドレス場合「2」が必要な点に注意です。

    STEP 2. Gmail(https://gmail.com)側ので受信設定


    差出人を @yahoo.co.jp にして送信もしたい場合には、下記を参考にしてみてください。

    ここでは受信だけする設定を説明します。

    1. Gmailにログインし、歯車 > すべての設定 > アカウントとインポートを開きます。「他のアカウントのメールを確認」より「メールアカウントを追加する」をクリックします。

    2. Yahooのメールアドレスを入力して、「次へ」

    3. POP3を選択して「次へ」

    4. ユーザー名:Yahooのメールアドレス
     パスワード:Yahooのパスワード

     をいれます。
     「ラベル付与」しておくのはオススメです。
     サーバーに残す(Yahoo側)かどうかは任意です。

    *なお以後、設定変更が生じた場合にこの画面を開くことになりますが、パスワードは空欄になっています。どうやら改めてパスワードをいれて保存しなおさないと設定が保存できないようにセキュリティ保護がかかっているようですね。

    5. 「メールを今すぐ確認する」をクリックして、取り込んでみます。

    うまく取り込めたら下図のように、0分前、○件のメールを取得しましたなどメッセージが出てくることでしょう。
    実際にYahooのメールボックスを見てみると、
     受信箱 :0件
     下書き :1件
    迷惑メール:32件
    合計、33件が取得できたということで数が一致してますね。


     6. テストしてみる(GmailからYahoo宛にメールしてみる)

    下図のように受信箱0件から、1件になってメールが届いていることがわかります。


    で「メールを今すぐ確認する」をクリックして、取り込んでみます。

    うまく取り込めました。なお「詳細を表示」リンクをクリックすると、最近の受信ログを見ることができます。最初は33件、次は1件受信できていますね。またそれから2度メールを取り込んでみましたが、メールなし(届いていないので)でした。



    ということでうまく受信設定ができているということになります。
    もし突然受信できなくなってしまったのなら、一度削除して改めて設定し直すのが良いと思います。

    2020年7月28日 @kimipooh

    2020年7月2日木曜日

    カスペルスキーで最近、MacのChrome で「この接続ではプライバシーが保護されません」が出る

    ここ最近、Google Chromeヘルプコミュニティでいくつか、Chromeでサイトが開けなくなったという質問が増えてきました。これらについては、カスペルスキーのHTTPSスキャン機能が原因の可能性が高いということです。
    を参考に、
    • ネット決済保護とWebトラッキング防止の使用時には安全な接続を確認する(HTTPS)
    をオフにすることで解決したという事例もありました。
    筆者が使っている ESETでも過去に似たようなことがあり、
    を参考に、SSL/TLSプロトコルフィルタリングをオフにしたことがあります。
    どうもSSL証明書の検証で引っかかっているように見えますねぇ。

    2020年7月2日 @kimipooh

    2020年6月3日水曜日

    【G Suite】Google Chat のチャットルームに外部Googleアカウントが追加可能に!


    下記の情報で5月26日(スケジュールリリース設定の場合)から15日以内に適用されると知ってはいましたが、手元の G Suite アカウントでは本日(6月3日)に適用されていることを確認しました。
    Google Chatは従来、同じG Suite契約範囲内でしか使えませんでした。しかし実際の打ち合わせなどオンラインでのテレワークが増えるにつれて
    • 業者とのやり取り
    • こちらが主催するイベントの打ち合わせ
    • オンライン授業や会議時のサポート(つながらないとか)
    をする際に、外部の人たちもチャットに入れないのはとても不便に感じていました。しかしそれができるようになったというのは朗報です!

    設定としては

    STEP 1. G Suite 管理者によって G Suite 管理コンソールから権限設定が必要


    上記を参考に管理者によって許可設定が必要です。

    その上で、

    STEP 2. 組織外(外部)のユーザーの参加を許可した「チャットルーム」の作成をする


    ざっと見た感じでは、既存のチャットルームには組織外ユーザーの参加を許可する設定項目がありませんでした。新規作成の場合には下記のようにチェックをつける項目が表示されました。


    これを付けておけばOKですね。
    なお許可しない設定でチャットルームが作成されていたら、下記のように追加できないと警告がでます。



    STEP 3. 組織外(外部)ユーザーをチャットルームに追加する


    追加しようとすると警告がでてきます(このあたりはG Suite 管理コンソールの設定次第)。「確定」ボタンを押します。


    すると、招待された側には下図のような招待メールがきます。


    ただし、2020年6月3日現在、上図の CHATを使ってみるのリンク先(https://chat.google.com)にアクセスしてもチャットルームが表示されていません。



    実際には、招待されているだけの状態なので、チャットルームの直URLから入って「参加」ボタンを押す必要があったのですね。

    STEP 4. 参加する


    チャットルームの直URLを、チャットルームを作成したG Suiteアカウント保持者に聞いてください。チャットルームを作成したG Suite アカウント側は、チャットルームに入り、そのURLを教えればよいです。



    参加すると、
    https://chat.google.com
    でアクセスしたチャット画面の左サイドメニューに参加したチャットルームが表示されているはずです!



    2020年6月3日 @kimipooh

    2020年5月30日土曜日

    Googleグループヘルプコミュニティが新設!

    Googleグループに関する質問がある場合(Gmailヘルプコミュニティ)に Google社員から投稿(公開)が入っているのに気づきました。これによれば、新しい Googleグループをリリースするのに伴い、Googleグループヘルプコミュニティを新設するのだとか。


    探してみると上記のように新設されていましたね!
    で新しい Googleグループって何?って思ったのですが、新しい Google グループのベータ版をリリース(G Suite アップデートブログ)にあるような、UIを Gmailに近づけたものになるやつかなぁ。これって無料版 Googleグループにもやってくるのだろうか?その手の情報は探せていませんが、新しい何かが生まれようとしているのは、なにかワクワクしますね!

    2020年5月30日 @kimipooh

    2020年4月18日土曜日

    【G Suite専用】 Gmail の左サイドメニューから Google Hangouts Meet に直接参加できるようになる

    Start or join a Google Meet video meeting directly from Gmail (G Suite Updates Blog)

    をみると G Suite アカウントの Gmailから直接 Google Hangouts Meet のミーティングルームを作成したり、参加したりできるようになるとか。普段はGoogleカレンダーからミーティングルームを作っているので、そちらはそのほうがいいかなと思いつつ、参加は便利そうだなと思いました。


    ヘルプはまだ英語版しかないようです。

    リリース時期


    早期リリース設定をしている場合には、4月16日段階的に実装(15日以内)ということです。私が管理する無料版 G Suite (即時リリース)はまだ実装されていないので待ち状態っですかね。またスケジュールリリースの場合には、4月30日から実装を始めるとのこと。

    この Meetメニューを消したい場合(2020-05-20)




    現時点で手持ちの G Suite だけでなく、無料版 Gmailにも Meetメニューが表示されています。無料版については「無料版Google Meetからの新規会議開始が可能に」(ITMedia)などのニュースになっている通り、9月30日まではほぼ無制限。その後無料版は制限があるものの使い続けることはできるようですね!
    ただ使わない人にとっては煩わしいメニューであるかもしれません。チャットは非表示にできるのに Meetメニューはその手段がないためです。

    消すためには、CSSを上書きするという手段があります。ただしCSSが変更されたら使えなくなるのでその都度、どこを変更したらよいのか調べる必要があります。調べる方法は、Chromeの要素の検証を使って構造を調べていくということになります。

    まず準備として、「新しい Gmail でメール一覧表示の受信日時表示を「日時」表示にしたい!」を参考に、ChromeにStylebot アドオンを入れておきましょう。

    そして設定として



    のようにすれば、現時点では表示を非表示にできるでしょう。それ以上のうまい方法はざっとみた程度ではわかりませんでした。この方法はGmailの表示を日本語にしているときにしか使えませんし、あまりうまい方法とはいえません。とりあえず非表示にはできるぐらいにおもっておいてもらったらよいかと。


    2020年5月20日 追記
    2020年4月18日 @kimipooh

    2020年4月12日日曜日

    Gmailで他のメールアドレスを差出人として設定していたが、突然送信エラーになる

    という現象がここ最近起こっているようで、Gmailヘルプコミュニティで多数の質問が寄せられています。
    によれば

    --
    メールの配信エラー
    [名前] の機能を使用して、別のアドレスまたは別のエイリアスからこのメールを送信しようとしています。[名前] のアカウントの設定に誤りがあるか、設定が最新の状態ではありません。設定を確認して、もう一度送信してみてください。

    応答:TLS Negotiation failed, the certificate doesn't match the host.
    --

    のようなエラーになるとか。

    追加情報(2020-04-17)



    にいつの間にか<「サーバーにアクセスできませんでした」、「TLS ネゴシエーションに失敗しました」といったエラーが表示される>という項目が追加されていました。これがこの件のようですね。


    対処方法


    独自ドメインを使っている場合で、SMTPサーバーに独自ドメインをいれている場合には、独自ドメインではないSMTPサーバーの設定がないか調べてみる、問い合わせてみるのがよいと思います。さくらインターネットの場合には初期ドメインに変更すると直るようです。

    下記にメールアドレスの @ の右側(ドメイン)を入れて確認した場合、@ の右側のドメインと証明書のドメインが異なるときに本問題が起こる可能性が高くなります。

    SMTP TLS 証明書の確認


    さくらインターネット


    2023年6月14時点での確認
    上記を参考に、メールアドレスは独自ドメインのアドレス(◯@独自ドメイン)
    • SMTPサーバー:***.sakura.ne.jp(初期ドメイン)
    • ユーザー名:◯@***sakura.ne.jp
    • パスワード:メールアドレスのパスワード
    として設定できました。


    === 以下旧情報 ==
    を参考に独自ドメインを使っている場合には、送信サーバーの設定を「初期ドメイン」のもに変更してみてください。

    GMO CLOUD/iCLUSTA+ byGMO

    に従って、設定変更をする。つまりはこのメンテナンスが出るまでは対処方法がなかったということになりますね。

    エックスサーバー


    その他


    ヘッダー全体からメールの経路を確認する(Gmail ヘルプ)

    を参考に送信経路(端末、送信側のメールサーバー、(途中経由のメールサーバー)、受信側のメールサーバー)をチェックし、送信側のメールサーバーを推測する手もあります。推測になるのでわかるかどうかはわかりません。OCNの場合には

    https://support.google.com/mail/thread/17302124?msgid=39801707

    において、
    --
    1)受信メールの「メッセージのソースを表示」
    ソースの中の下記の部分を確認する。
    Received: from cxxxxxx.mxxxm.net (cxxxxxx.mxxxm.net. [000.000.000.000])

    2) cxxxxxx.mxxxm.net がドメインを登録しているサーバーのドメインです。
    このドメインをGmailのSMTPの設定に入力する
    --
    という情報もあるので、そうしたものを参考にするのもいいですが、素直にサポートに聞いたほうが早いかなとも思います。

    また、末尾に説明した(サーバー証明書のドメインと設定した送信サーバが異なるかどうかの確認) openssl コマンドによる証明書のCNチェックも確認してみてはと思います。

    サーバー証明書の検証が入った?


    たとえば、

    hostname was not match with the server certificate

    のエラーについては、SMTPサーバーのサーバー証明書のドメインと SMTPサーバーのドメインが一致してない場合に起こります。これは独自ドメインで起こりがちです
    • SMTP サーバー:smtp.example.com
    • SMTPサーバー証明書のドメイン:example.com
    • 独自ドメイン:****.com
    のとき、もし SMTPサーバーと、独自ドメインがともに同じIPアドレスに設定されていた場合、サーバー証明書の検証がなければ、SMTPサーバーは、独自ドメインでもOKです。しかし検証がはいると、SMTPサーバ証明書のドメインを指定しなければエラーになります。これは証明書次第になってくるので、エラーにならない場合もあります。

    たとえばさくらインターネットの場合
    に送信サーバーの設定については
    ==
    設定するメールアドレスのドメイン名※1  ※2
    または
    標準のメールアドレスを利用できるドメイン名※1  ※2

    ※2メールソフトにより、『送受信サーバの設定が初期ドメインではない場合』
    セキュリティ例外の追加に関する警告等が表示される可能性がございます。
    ==
    と書かれています。つまりSMTPサーバー(送信サーバー)は、独自ドメインを指定できるけれど、初期ドメインでなければ警告がでる場合があるよと書かれています。これがサーバー検証されていたら警告でるよってことの意味になりますね。

    もしかしたら、2020年4月2日の
    あたりが関係するかもしれませんが、詳細は不明ですね。

    サーバー証明書のドメインと設定した送信サーバが異なるかどうかの確認


    もしコマンドで openssl が使えるのであれば
    • openssl s_client -connect  送信サーバ:ポート番号 -starttls smtp
    というコマンドを叩いてみてください。そして CN の値をチェックしてみてください。

    さくらインターネットのサーバーで独自ドメインを追加している場合の例


    • openssl s_client -connect  送信サーバ(独自ドメイン):ポート番号 -starttls smtp
    をすると、
    • CN = *.sakura.ne.jp
    が出てきます(あくまで1つの独自ドメインを試した例)。
    この場合、送信サーバ(独自ドメイン)は、サーバー小遺書のドメイン「*.sakura.ne.jp」 と一致しません
    これは、「サーバー証明書のドメインと設定した送信サーバが異なる」状況になります。
    そうした場合に、どうやらGmail側が、「TLS Negotiation failed, the certificate doesn't match the host.」というエラーを出して送信できなくなっている事例が多数出てきているという感じに見えますね。

    2020年4月12日 @kimipooh

    2020年3月18日水曜日

    【備忘録】Googleグループの投稿データ(アーカイブ)から添付ファイルのみを一括ダウンロード

    下記の質問を見かけて、調べたのですが直接ダウンロードする方法もなく、Google Apps Script を使って(G Suiteのみ)、API経由でもGoogle グループやその設定、メンバー管理ができるぐらいで、投稿データから一括で添付ファイルのみを抜き出す方法はみあたりませんでした。

    となれば次善策として、
    1. 新しく来るメールは、メール配信するようにしておく
    2. 過去メール(Web上のGoogleグループにアーカイブ)は、一旦PCにダウンロードし、電子メールソフトでインポートした上で、添付ファイルのみを一括抜き出す
    ぐらいかなぁと思いました。実際にやってみて出来たので備忘録としてまとめておきます。なお「1」「2」とも Googleグループの管理設定によっては出来ないことがあります。

    「1」の場合の条件(下記のすべての条件を満たす)
    1. Web版Googleグループへの接続が許可されていること
    2. Googleグループに登録されたメンバーのメールアドレスのGoogleアカウント(なければ要作成)でログインできること
    「2」の場合(下記のすべての条件を満たす)
    1. Googleグループで「投稿データのアーカイブ」機能が有効(通常は有効になっているはず)であること
    2. Web版Googleグループへの接続が許可されていること

    になるかと思います。
    なお、「2」の方法は、参加している Googleグループの投稿データをまるごとダウンロードすることになります。個別はできないようですね。



    「2」の手順


    1. Googleグループのデータを Google Takeout より mbox 形式のファイルでダウンロード
    2. Thunderbird(電子メールソフト)へ mbox形式のファイルをインポート
    3. Thunderbird アドオンを使って、Thunderbirdのフォルダ内メールの添付ファイルを特定フォルダへ一括ダウンロード

    STEP 1. Googleグループのデータを Google Takeout より mbox 形式のファイルでダウンロード


    1. https://takeout.google.com にアクセス
    2. 「選択をすべて解除」リンクをクリック
    3. 「グループ」の右側のチェックを入れ、末尾にある「次のステップへ」ボタンをクリック

      *「複数の形式」は、下記のように、3つのデータが含まれている事がわかります。
    4. ダウンロード先はいろいろ選べますが、「ダウンロードリンクをメールで送信」は容量次第でかなり時間がかかるので、ここでは Googleドライブへ保存することにします。これだとかなり速いです(ただし容量が足りないと失敗するので注意)。
    5. 上図のようにダウンロードできる状態になるとメールで通知があります。
    6. ファイルは圧縮されているので、これをダウンロードして、展開(解凍)します。
      フォルダの構成は下記の通り、Googleグループ名ごとに保存されています。今回利用するのは、「トピック.mbox」 ファイルになります(拡張子を隠す設定していると「トピック」という名前にみえるかもしれません。

    STEP 2. Thunderbird(電子メールソフト)へ mbox形式のファイルをインポート



    1. Thunderbird のインストールと設定(利用しているメールアカウントを設定すればよいと思います。)
    2. Thunderbird に2つのアドオン「ImportExportTools NG」「AttachmentExtractor Continued」をインストール
    3. Thunderbird のローカルフォルダに、新規フォルダを作成。
      *インポートするのはGoogleグループごとになるので、Googleグループ名かそれが推測できる名前にしておくのがよいです。今回は説明の便宜上「test-ml」にしてます。

    4. 作成したフォルダで「右クリック」し、ImportExportTools NG メニューよろ「mbox ファイルをインポートを選択」、「単一または複数のmbox ファイルを直接インポート」にチェックをいれて、OKボタンを押します。

    5. ダウンロードして展開(解凍)したフォルダから、該当Googleグループ名フォルダにある「トピック」ファイルを選択します。
    6. すると、先程作成した Thunderbird上の test-ml フォルダ内に「トピック.mbox」フォルダが出来て、そこにメールが入っているはずです。

    STEP 3. Thunderbird アドオンを使って、Thunderbirdのフォルダ内メールの添付ファイルを特定フォルダへ一括ダウンロード


    【まめ知識】GoogleのデーターエクスポートでアーカイブしたGmailデータの読み取り の 「Appendix: 取り込んだメールから添付ファイルだけをファイルとして取り出したい!!」を参考に、
    • Thunderbird上の test-ml フォルダ内に「トピック.mbox」フォルダ内の添付ファイルを指定したフォルダにダウンロード
    すると完了です!

    2020年3月18日 @kimipooh