質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

1回答

1700閲覧

GmailからGAS経由でスプレッドシートへの自動転記化

r-sakuta

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/05/02 07:54

前提・実現したいこと

こちらのサイトを参照して、
https://valmore.work/how-to-copy-gmail-message-to-spreadsheet/
Gmailの受信内容をGASを使用してスプレッドシートに自動転記しようと考えています。
GASでのエラー表示は無くなったのですが、自動転記がうなく出来ていなかったので、アドバイスをいただきたいです。
ちなみに今回初めてGASに触れたので、全くの初心者です。
宜しくお願い致します。

抽出したいメール本文の内容は以下の通りです。
~~~~~~~~~~~~~~~~~
■ ダウンロードURL
(弊社のダウンロードコンテンツのURLが表示されます)
■ テキスト名
(弊社のダウンロードコンテンツ名が表示されます)
■ 会社名
(お客様の会社名が表示されます)
■ 氏名
(お客様のお名前が表示されます)
■ 電話番号
(お客様の電話番号が表示されます)
■ メールアドレス
(お客様のメールアドレスが表示されます)
■ HPのURL
(お客様の会社のHPのURL)
■ 〇〇〇を教えてください
(情報漏洩の観点から、〇〇で記載しました)
■ 〇〇〇の希望
(情報漏洩の観点から、〇〇で記載しました)
~~~~~~~~~~~~~~~~~

発生している問題・エラーメッセージ

GASでのエラー表示は無くなったのですが、転記がうなく出来ていなかったので、アドバイスをいただきたいです。
基本的には、上記のサイト通りに進めたので、初歩的なミスはしていないはずです…

エラーメッセージ

該当のソースコード

function myFunction() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('label:レポートDL -label:レポートDL/転記済み'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { //日時取得 var Date = message.getDate(); // メール本文を取得 var plainBody = message.getPlainBody(); //メール本文が取得できているかログに出力して確認    //Logger.log(plainBody); //ダウンロードURL取得 var object = plainBody.match(/■ ダウンロードURL\r\n(.*)/);      //テキスト名取得 var text = plainBody.match(/■ テキスト名\r\n(.*)/);    //企業名取得 var company = plainBody.match(/■ 会社名\r\n(.*)/); //名前取り出し var name = plainBody.match(/■ 氏名\r\n(.*)/); //電話番号 var Tel = plainBody.match(/■ 電話番号\r\n(.*)/); //メールアドレス取得 var MailAdress = plainBody.match(/■ メールアドレス\r\n(.*)/);    //ホームページURL取得 var URL = plainBody.match(/■ HPのURL\r\n(.*)/);    //〇〇〇取得 var marumaru = plainBody.match(/■ 〇〇〇を教えてください\r\n(.*)/); //〇〇〇取得 var marumaru = plainBody.match(/■ 〇〇〇の希望\r\n(.*)/); //書き込むスプレッドシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('テスト'); //最終行を取得 var lastRow = sheet.getLastRow() + 1; //セルを取得して値を転記 sheet.getRange(lastRow , 1).setValue(Date); sheet.getRange(lastRow , 2).setValue(object[1]); sheet.getRange(lastRow , 3).setValue(text[1]); sheet.getRange(lastRow , 5).setValue(company[1]); sheet.getRange(lastRow , 6).setValue(name[1]); sheet.getRange(lastRow , 7).setValue(Tel[1]); sheet.getRange(lastRow , 8).setValue(MailAdress[1]); sheet.getRange(lastRow , 9).setValue(URL[1]); sheet.getRange(lastRow , 10).setValue(marumaru[1]); sheet.getRange(lastRow , 11).setValue(marumaru[1]); }); //スレッドに未添付ラベルを付ける var label = GmailApp.getUserLabelByName('レポートDL/転記済み'); thread.addLabel(label); }); }

試したこと

GAS内での基本的な確認は全て行いました。関数の選択ミスやトリガーの設定など。
その結果、GAS内でのエラー表示は無くなったのですが、転記ができていないです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xail2222

2021/05/02 15:37 編集

回答になるかもしれないので、回答に書き直します。
guest

回答1

0

'label:レポートDL -label:レポートDL/転記済み'は間が全角スペースではないでしょうか。
半角スペースにする必要があるかと思います。

と言う点が気になりました。

あとは、上記が関係なければ
var threads = GmailApp.search('label:レポートDL -label:レポートDL/転記済み');
でthreadsは取得できることを確認してみてください。
デバッグで確認するか、console.log(threads);をコードに追記して[]が出力されれば
取得できてないことになります。

投稿2021/05/02 15:38

xail2222

総合スコア1508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問