はじめまして。
当方知識が無いため色々調べ、コードを書いてみたのですが抽出できません。
どなたか知恵をお貸しいただけないでしょうか?
以下のようなメールから、自動でスプレッドシートに項目ごとに抽出したいと思っております。
[フォームズ]------------------------------
ID:S000000 投稿がありました
[投稿日時] 2023年00月00日 10時00分00秒
お申込日 : 00月00日
■お名前
山田 一郎 様
■お名前(フリガナ)
ヤマダ イチロウ 様
■ご住所※全角25文字以内(半角不可)
[郵便番号] : 〒062-0000
[都道府県] : 北海道
[市区町村] : 札幌市○○区
[町名番地] : 美園○条○丁目○-○
[建物名] : ハイツ○○-101
■電話番号区分1
3.携帯
■連絡
3:夕方以降
======================
function getMail(){
var sheet = SpreadsheetApp.getActive().getSheetByName('フォームズ回答');
var start = 0;
var max = 500;
var threads = GmailApp.search('label:【フォームズ】 is:unread',start,max);
var row = sheet.getLastRow() + 1;
for(var n in threads){
var the = threads[n];
var msgs = the.getMessages();
for(m in msgs){
var msg = msgs[m];
var body = msg.getBody();
var res = body.split('<br/>\n')
var date = msg.getDate();
sheet.getRange(row,1).setValue(date);
var customer = res[res.indexOf('■お名前')+1]
sheet.getRange(row,2).setValue(customer);
var name = res[res.indexOf('■お名前(フリガナ)')+1]
sheet.getRange(row,3).setValue(name);
var address1 = plainBody.match(/[都道府県] :(.*)/);
// Logger.log(address1);
var address2 = plainBody.match(/[市区町村] : (.*)/);
// Logger.log(address2);
var address3 = plainBody.match(/[町名番地] : (.*)/);
// Logger.log(address3);
var address4 = plainBody.match(/[建物名] : (.*)/);
// Logger.log(address4);
var tel = res[res.indexOf('■電話番号区分1')+1]
sheet.getRange(row,3).setValue(tel);
var call = res[res.indexOf('■連絡')+1]
sheet.getRange(row,3).setValue(call);
}
the.markRead();
row++;
}
Utilities.sleep(1000);
}
======================
抽出したい情報は、
■お名前の一つ下の行の情報(様を抜きたい)
■お名前(フリガナ)の一つ下の行の情報(様を抜きたい)
■ご住所※全角25文字以内(半角不可)の
[郵便番号] : 以降の情報
[都道府県] : 以降の情報
[市区町村] : 以降の情報
[町名番地] :以降の情報
[建物名] : 以降の情報
■電話番号区分1の一つ下の行の情報
■連絡の一つ下の行の情報
を横並びにセルに抽出し自動で追加されていくようにしたいと考えております。
住所以外でやってみましたが、ひとつづつではなく1メール全部1セルに入っており
住所のコードを足すとエラーは出ないのですが何も反映されなくなりました。
お手数ですがどのようにGASのコードを書けばよいか
ご教授お願いいたします。
