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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1037閲覧

google Apps Script で受信メールをリスト化したい

Chuntian

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/06/25 08:30

前提・実現したいこと

google Apps Scriptlで、gmailに受信した特定のメールをリスト化したいです。
色んなサイトを検索し、以下で上手くいきそうなのですが、2つ追加したい項目があります。
1,受信したメールのタイトル(subject)
2,受信したメールの送信元(from)

どこにどのように記載したらよいのか分からないので教えてください。
また、[項目:品名]がブランクのものがあるためエラーが返ってきます。
エラーになるのではなく、書かれていなければ空白を返すにはどこかに構文を足せばよいですか?

よろしくお願いします。

### 該当のソースコード var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getRange(7, 21, sheet.getLastRow() + 1).getValues(); function getMail01(){ var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // Gmailのラベル名をここに記載 var threads = GmailApp.search('label:任意のラベル名 is:unread',start,max);   // メールから日時、ご注文番号、品名、印刷部数を取り出す// for(var i = 0; i < Messages.length; i++) { for(var j = 0; j < Messages[i].length; j++) { var id = Messages[i][j].getId(); if(!hasId(id)){ var body = Messages[i][j].getPlainBody(); var date = threads[i].getMessages()[j].getDate(); var regNumber = new RegExp('ご注文番号 :' + '.*?' + '\r'); var Number = body.match(regNumber)[0].replace('ご注文番号 :', '').replace('\r', ''); var regName = new RegExp('品名    :' + '.*?' + '\r' ); var Name = body.match(regName)[0].replace('品名    :', '').replace('\r', ''); var regBusu = new RegExp('印刷部数  :' + '.*?' + '\r' ); var Busu = body.match(regBusu)[0].replace('印刷部数  :', '').replace('\r', ''); // それぞれの項目をセルを指定してスプレッドシートへ転記 sheet.getRange(row,1).setValue(date); sheet.getRange(row,2).setValue([Number]); sheet.getRange(row,4).setValue([Name]); sheet.getRange(row,8).setValue([Busu]); row++ ```ここに言語名を入力 JAVA script

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

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

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

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

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

guest

回答1

0

ご質問のコードにはMessagesを初期化している部分が見当たらないので、とても心もとないのですが…

threadsから得るとすれば、受信したメールのタイトル(subject)はthreads[m].getMessages()[n].getSubject()で、受信したメールの送信元(from)はthreads[m].getMessages()[n].getFrom()です。

リファレンスはこちらにあります。
Gmail Service | Apps Script | Google Developers

投稿2021/06/25 10:43

itagagaki

総合スコア8402

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

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

Chuntian

2021/06/25 11:54

Messagesの初期化とはなんでしょう? 全くの素人で、こちらを参考にしてます。 https://note.com/pc8hara/n/n850e081311c5 ご回答いただいたものを入力すると、以下で良いのでしょうか? [m][n]のままだと、参照エラーになります。 var body = Messages[i][j].getPlainBody(); var date = threads[i].getMessages()[j].getDate(); var from = threads[i].getMessages()[j].getFrom(); var subject = threads[i].getMessages()[j].getSubject(); ということでしょうか?うまく実行できないようです。
itagagaki

2021/06/25 12:32

プログラミングを学ぶ必要があると思います。 厳しいことを言うようですが、プログラムは素人の方がコピペでできるものではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問