はじめまして。
当方専門知識はほとんどございません。そのため的外れな質問でしたら失礼致しますが、
どなたか知恵をお貸しいただけないでしょうか?
以下のようなメールのうち、お客様情報のみ自動でスプレッドシートに項目ごとにまとめて管理したいと思っております。
りんご、バナナ、ももの部分が問い合わせ商品で、お客様によって数が変わります。
======================
Webサイトより、お問い合わせがありました。
送信内容は下記の通りです。
りんご
バナナ
もも
・お名前
山田 太郎
・フリガナ
ヤマダ タロウ
・メールアドレス
・電話番号
090-0000-0000
・住所
〒000-0000
東京都◯◯区◯◯0-00-00
山田マンション00
======================
取得したい情報は、
山田 太郎様
090-0000-0000
〒000-0000
東京都◯◯区◯◯0-00-00
山田マンション00
です。
実はググったりしながら一度はカタチになったのですが
私の実践した方法は「本文を改行ごとに、文章を変数として保存している?」やり方のため、
りんご
バナナ
もも
の部分が、
りんご
バナナ
だったりすると、段落がズレてしまい違う行を抽出してしまいます。。。
そこで、質問タイトルに戻りますが、「・お名前」の下の情報の「山田 太郎」を取得するにはどのようにコードをかけばよろしいでしょうか?
他のサイトの問い合わせメールも受信しているのですが、そちらは「・お名前」の右横に「山田 太郎」が記載しているので
そちらの場合もご教授いただけますと助かります。
お手数ですがよろしくお願い致します。
以下一度カタチになったコードです。
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);//1列目に内容
var customer = res[16].replace('様', '')
sheet.getRange(row,2).setValue(customer);//2列目に内容
var mailaddress = res[17].
sheet.getRange(row,3).setValue(address);//3列目に内容
var tel = res[18].
sheet.getRange(row,4).setValue(tel);//4列目に内容
var address1 = res[19].
sheet.getRange(row,5).setValue(address1);//5列目に内容
var address2 = res[20].
sheet.getRange(row,6).setValue(address2);//6列目に内容
var address3 = res[21].
sheet.getRange(row,7).setValue(address3);//7列目に内容
the.markRead();
row++;
}
Utilities.sleep(1000);
}
}