目的は、gmail のデータをgoogle sheet へ転記することです。(まずは全文やってみたい、それができたらピックアップする形にしたい)
https://valmore.work/how-to-copy-gmail-message-to-spreadsheet/
上記ページを参考にやってみようと思いました。
そうすると下記のようなことをやります。
function myFunction() {
// 検索条件に該当するスレッド一覧を取得
var threads = GmailApp.search('label:処理済み');
// スレッドを一つずつ取り出す
threads.forEach(function(thread) {
// スレッド内のメール一覧を取得
var messages = thread.getMessages();
// メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // 差出人を取り出す var name = plainBody.match(/差出人: (.*)/); // 会社名を取り出す var company = plainBody.match(/会社名: (.*)/); // メールアドレスを取り出す var email = plainBody.match(/メールアドレス: (.*)/); // 電話番号を取り出す ↓変えている var tel = plainBody.match(/Sweets(.*)/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('MailAlls'); // セルを取得して値を転記 ↓1-3行目はコメントにしている // sheet.getRange(lastRow, 1).setValue(name[1]); // sheet.getRange(lastRow, 2).setValue(company[1]); // sheet.getRange(lastRow, 3).setValue(email[1]); sheet.getRange(lastRow, 4).setValue(tel[1]); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('処理済み'); thread.addLabel(label);
});
}
ーーーーーーーーーーーーーーーーーーーー
そうするとエラーがいくつか出ます
エラー
ReferenceError: lastRow is not defined
(匿名) @ コード.gs:35
(匿名) @ コード.gs:11
myFunction @ コード.gs:6
まず、35行目は、
sheet.getRange(lastRow, 4).setValue(tel[1]);
のところです。
選択するメールのうち、本文に、該当する形の部分 Sweets(.*) の部分がないものが、一つでもあれば、エラーになってしまうのでしょうか?
(すなわち、そのことが、エラーの原因なのでしょうか)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/18 12:13
2021/02/18 12:45