実現したいこと
未読のGメールの内容を
スプレッドシートに転記させたい。
前提
お問い合わせフォームに入力された未読のGメールの内容を
GASでスプレッドシートに転記させたいのですが
内容が反映される項目とされない項目があり転記作業が上手くいきません。
発生している問題・エラーメッセージ
エラーメッセージ等は、特に表示されてないです。
添付の画像のように転記が上手くいっておりません。
### 該当のソースコード function getNewEmails() { //スプレッドシートを開く var ss = SpreadsheetApp.openById('転記先のスプレッドシートのID'); var sheet = ss.getSheetByName("台帳"); //検索条件 //同じ件名で未読のメールをさがす var query = 'subject:"件名" is:unread' var threads = GmailApp.search(query); var messageCount = threads.length; //取得したメールを1件ずつ処理していく var mark = ':' //メール内の問い合わせ項目の記号 for (var i = 0; i < messageCount; i++) { //SpreadSheetに書き込む変数 var date, time, companyName, userName, mail, tel var thread = threads[i] var message = thread.getMessages()[0] //メール本文の取得 var body = message.getPlainBody(); var bodyArray = body.split(mark) var bodyArray = body.split("\r\n") for (var n = 0; n < bodyArray.length; n++) { var item = bodyArray[n] if (item) { var itemTitle = itemArray[0] var itemText = itemArray[0] //見出しから内容を判断して取得 switch (itemTitle) { case '会社名': companyName = itemText break; case '担当者名': userName = itemText break; case '電話番号': tel = itemText break; case 'メールアドレス': mail = itemText break;} } } //受信日時の取得 date = message.getDate(); date = Utilities.formatDate(date, 'Asia/Tokyo', 'MM/dd'); time = message.getDate(); time = Utilities.formatDate(time, 'Asia/Tokyo', 'HH:mm'); //列が「受信日 受信時間 会社名 担当者名 電話番号 メールアドレス 」となっているのでその順番で書き込み sheet.appendRow([ date, time, companyName, userName,tel, mail, ]); //メールを既読にする //thread.markRead(); } }
試したこと
私のGASについての知識は、初心者でも書けるレベル及び調べながら読める程度です。
いままでもネット等で公開されているサイトから
拾ってきたものをコピペさせてもらい少しアレンジして使っていました。
今回、自分なりに色々と試してみたのですがどうにもうまくいかない為
こちらにてご相談させてもらいました。
bodyArrayを2つ定義したり、itemArrayの定義等がなかったり、itemTitleとitemTextに同じ値を代入したりしているようですが本当にこのソースで間違いがありませんか?
ほんとうですね…。おそらく間違ってます…色々試してうる内におかしなことになってますね…
因みに、最初、こちらのサイトを参考にコピペさせてもらいました。
https://www.globalgate.co.jp/blog/mail-automation-using-gas
知識なさすぎで申し訳ないのですが、どの辺を修正すれば転記できそうでしょうか。
