【やりたいこと】
GASで条件を指定してGmailを取得しています。
本文が長いので本文を分割することを検討しています。
E列:次回のご予約:04/28/2020 08:00-10:00 (ドライブレコーダー購入と取り付け)
F列:お名前:abc
G列:電話番号:090-1234-5678
【調査したこと】
参考サイトに記載されているコードを参考にして修正をしていますが、GASもJAvascriptも初心者のため苦しんでいます。1時間格闘してわからなかったので、質問させていただきます。
【参考サイト】
http://www.initialsite.com/w01/13064
https://blog.8basetech.com/google-apps-script/gmail_extraction/
【質問内容】
下記の部分を修正して、本文を分割することは方法を知りたいです。ヒントやきっかけになることでもなんでも良いので、ご存知の方いらっしゃいましたらご教示お願いします。
for(var i = 0; i < msgs.length; i++) { mymsg[i]=[]; for(var j = 0; j < msgs[i].length; j++) { mymsg[i][0] = msgs[i][j].getDate(); mymsg[i][1] = msgs[i][j].getFrom(); mymsg[i][2] = msgs[i][j].getSubject(); var nbsp = String.fromCharCode(160); mymsg[i][3] = msgs[i][j].getPlainBody().replace(/<("[^"]*"|'[^']*'|[^'">])*>|nbsp/g,'').replace(/&; | /g,'').substring(0,50000); }
【コード】
function contact_Gmail() { var rowNumber = 2; var mysheetname = 'Gmail解析_' + DateString(new Date()); var GmailSS = SpreadsheetApp.create(mysheetname); var mySheet = GmailSS.getSheets()[0]; mySheet.setName(mysheetname); mySheet.getRange(1,1).setValue("日時"); mySheet.getRange(1,2).setValue("送信元"); mySheet.getRange(1,3).setValue("件名"); mySheet.getRange(1,4).setValue("本文"); var newfolder = DriveApp.createFolder(mysheetname); var searchQuery = 'subject:(”予約が確定" OR "finalized") '; var threads = GmailApp.search(searchQuery, 0, 200); var mymsg=[]; var msgs = GmailApp.getMessagesForThreads(threads); for(var i = 0; i < msgs.length; i++) { mymsg[i]=[]; for(var j = 0; j < msgs[i].length; j++) { mymsg[i][0] = msgs[i][j].getDate(); mymsg[i][1] = msgs[i][j].getFrom(); mymsg[i][2] = msgs[i][j].getSubject(); var nbsp = String.fromCharCode(160); mymsg[i][3] = msgs[i][j].getPlainBody().replace(/<("[^"]*"|'[^']*'|[^'">])*>|nbsp/g,'').replace(/&; | /g,'').substring(0,50000); } var myattachments = msgs[i][j-1].getAttachments(); //添付ファイルを取得 for(var k in myattachments){ newfolder.createFile(myattachments[k]); //ドライブに添付ファイルを保存 } } if(mymsg.length>0){ GmailSS.getSheets()[0].getRange(2, 1, i, 4).setValues(mymsg); //シートに貼り付け } } function DateString(date){ return date.getFullYear().toString() + date.getMonth().toString() + date.getDate().toString() + date.getHours().toString() + date.getMinutes().toString() + date.getSeconds().toString(); };

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/01 01:44