質問編集履歴
2
再度行の追加いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,133 +4,133 @@
|
|
4
4
|
下記URL参考にしております。
|
5
5
|
https://note.com/pc8hara/n/n850e081311c5
|
6
6
|
``````
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
0.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
0.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
0. var date = threads[i].getMessages()[j].getDate();
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
0. var regTenpoName = new RegExp('お取引した店舗名:' + '[\\s\\S]*?' +'担当者名:');
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
0. var regTelNumber = new RegExp('携帯電話番号:' + '[\\s\\S]*?' + 'メールアドレス:');
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
7
|
+
1. var sheet = SpreadsheetApp.getActiveSheet();
|
8
|
+
2. var data = sheet.getRange(7, 21, sheet.getLastRow() + 1).getValues();
|
9
|
+
3.
|
10
|
+
4. function getMail04(){
|
11
|
+
5. var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
|
12
|
+
6.
|
13
|
+
7. var objSheet = objSpreadsheet.getSheetByName("(その他)個人◆記念キャンペーン");
|
14
|
+
8. var sheet = SpreadsheetApp.setActiveSheet(objSheet);
|
15
|
+
9. var start = 0;
|
16
|
+
10.
|
17
|
+
11. // 取得するメールの最大件数
|
18
|
+
12. var max = 1;
|
19
|
+
13.
|
20
|
+
14. // Gmailのラベル名をここに記載
|
21
|
+
15. var threads = GmailApp.search('label:-その他-キャンペーン is:unread',start,max);
|
22
|
+
16.
|
23
|
+
17. // 最後の行探してそれ以降に追加 挿入開始位置
|
24
|
+
18. var Messages = GmailApp.getMessagesForThreads(threads);
|
25
|
+
19. var row = sheet.getLastRow() + 1;
|
26
|
+
20.
|
27
|
+
21. // 見出しがあるためシートの1行目を固定
|
28
|
+
22. sheet.setFrozenRows(1);
|
29
|
+
23.
|
30
|
+
24. // メールから各種情報を取り出す//
|
31
|
+
25. for(var i = 0; i < Messages.length; i++) {
|
32
|
+
26. for(var j = 0; j < Messages[i].length; j++) {
|
33
|
+
27. var id = Messages[i][j].getId();
|
34
|
+
28. if(!hasId(id)){
|
35
|
+
29. var body = Messages[i][j].getPlainBody();
|
36
|
+
30. var date = threads[i].getMessages()[j].getDate();
|
37
|
+
31.
|
38
|
+
32. var regSyohinn = new RegExp('応募賞品:' + '[\\s\\S]*?' + '応募のきっかけ:');
|
39
|
+
33. var Syohinn = body.match(regSyohinn)[0].replace('応募賞品:', '').replace('応募のきっかけ:', '').replace('\r', '');
|
40
|
+
34. var regKikkake = new RegExp('応募のきっかけ:' + '[\\s\\S]*?' + 'キャンペーンコード:');
|
41
|
+
35. var Kikkake = body.match(regKikkake)[0].replace('応募のきっかけ:', '').replace('キャンペーンコード:', '').replace('\r', '');
|
42
|
+
36. var regCODE = new RegExp('キャンペーンコード:' + '[\\s\\S]*?' + 'お取引された物件のエリア:');
|
43
|
+
37. var CODE = body.match(regCODE)[0].replace('キャンペーンコード:', '').replace('お取引された物件のエリア:', '').replace('\r', '');
|
44
|
+
38. var regBukkenAREA = new RegExp('お取引された物件のエリア:' + '[\\s\\S]*?' + 'お取引した店舗名:');
|
45
|
+
39. var BukkenAREA = body.match(regBukkenAREA)[0].replace('お取引された物件のエリア:', '').replace('お取引した店舗名:', '').replace('\r', '');
|
46
|
+
40. var regTenpoName = new RegExp('お取引した店舗名:' + '[\\s\\S]*?' +'担当者名:');
|
47
|
+
41. var TenpoName = body.match(regTenpoName)[0].replace('お取引した店舗名:', '').replace('担当者名:', '').replace('\r', '');
|
48
|
+
42. var regTantousyaName = new RegExp('担当者名:' + '[\\s\\S]*?' +'お名前:');
|
49
|
+
43. var TantousyaName = body.match(regTantousyaName)[0].replace('担当者名:', '').replace('お名前:', '').replace('\r', '');
|
50
|
+
44. var regNameKanji = new RegExp('お名前:' + '[\\s\\S]*?' + 'ふりがな:');
|
51
|
+
45. var NameKanji = body.match(regNameKanji)[0].replace('お名前:', '').replace('ふりがな:', '').replace('\r', '');
|
52
|
+
46. var regNameFurigana = new RegExp('ふりがな:' + '[\\s\\S]*?' + '生年月日:');
|
53
|
+
47. var NameFurigana = body.match(regNameFurigana)[0].replace('ふりがな:', '').replace('生年月日:', '').replace('\r', '');
|
54
|
+
48. var regSeinengappi = new RegExp('生年月日:' + '[\\s\\S]*?' + '携帯電話番号:');
|
55
|
+
49. var Seinengappi = body.match(regSeinengappi)[0].replace('生年月日:', '').replace('携帯電話番号:', '').replace('\r', '');
|
56
|
+
50. var regTelNumber = new RegExp('携帯電話番号:' + '[\\s\\S]*?' + 'メールアドレス:');
|
57
|
+
51. var TelNumber = body.match(regTelNumber)[0].replace('携帯電話番号:', '').replace('メールアドレス:', '').replace('\r', '');
|
58
|
+
52. var regJusyo = new RegExp('住所:' + '[\\s\\S]*?' + '住所コード:');
|
59
|
+
53. var Jusyo = body.match(regJusyo)[0].replace('住所:', '').replace('住所コード:', '').replace('\r', '');
|
60
|
+
54. var regJusyoCode = new RegExp('住所コード:' + '[\\s\\S]*?' + '上記の住所がはがき記載の住所と違う場合はチェックを入れてください:');
|
61
|
+
55. var JusyoCode = body.match(regJusyoCode)[0].replace('住所コード:', '').replace('上記の住所がはがき記載の住所と違う場合はチェックを入れてください:', '').replace('\r', '');
|
62
|
+
56. var regOnayami2 = new RegExp('『ある』とご回答の場合、ご相談内容をご記入ください:' + '[\\s\\S]*?' + 'ご相談内容について弊社からのご連絡方法を選択ください:');
|
63
63
|
**57. **var Onayami2 = body.match(regOnayami2)[0].replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('\r', '');
|
64
|
-
|
65
|
-
|
66
|
-
0. var regSNS = new RegExp('公式SNSをフォローされていますか:' + '[\\s\\S]*?' + 'その他ご要望等ございましたらご記入ください:');
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
0. var regOnayami = new RegExp('お悩みやご相談等はございますか:' + '[\\s\\S]*?' + '『ある』とご回答の場合、ご相談内容をご記入ください:');
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
0. sheet.getRange(row,2).setValue([Syohinn]);
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
0. sheet.getRange(row,12).setValue([Mail]);
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
0. row++
|
107
|
-
0.
|
108
|
-
0. // 受信日時順の昇順に並び替え
|
109
|
-
0. var range = sheet.getRange("A:U");
|
110
|
-
0. range.sort({column: 1, ascending: true});
|
111
|
-
0. }
|
112
|
-
0. }
|
113
|
-
0. }
|
114
|
-
0. }
|
115
|
-
0.
|
116
|
-
0. // 同じメッセージIDがある場合は読み込まないように
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
0. var reg = new RegExp(pre + '.*?' + suf);
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
64
|
+
58. var regRenrakuhouhou = new RegExp('ご相談内容について弊社からのご連絡方法を選択ください:' + '[\\s\\S]*?' +'公式SNSをフォローされていますか:');
|
65
|
+
59. var Renrakuhouhou = body.match(regRenrakuhouhou)[0].replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('公式SNSをフォローされていますか:', '').replace('\r', '');
|
66
|
+
60. var regSNS = new RegExp('公式SNSをフォローされていますか:' + '[\\s\\S]*?' + 'その他ご要望等ございましたらご記入ください:');
|
67
|
+
61. var SNS = body.match(regSNS)[0].replace('公式SNSをフォローされていますか:', '').replace('その他ご要望等ございましたらご記入ください:', '').replace('\r', '');
|
68
|
+
62. var regYoubou = new RegExp('その他ご要望等ございましたらご記入ください:' + '[\\s\\S]*?' + '個人情報の取り扱いについて(必ずお読みください):');
|
69
|
+
63. var Youbou = body.match(regYoubou)[0].replace('その他ご要望等ございましたらご記入ください:', '').replace('個人情報の取り扱いについて(必ずお読みください):', '').replace('\r', '');
|
70
|
+
64. var regAnother = new RegExp('個人情報の取り扱いについて(必ずお読みください):' + '[\\s\\S]*?' + 'このメールはホームページ<記念キャンペーン>');
|
71
|
+
65. var Another = body.match(regAnother)[0].replace('個人情報の取り扱いについて(必ずお読みください):', '').replace(/\r?\n/g, '').replace('このメールはホームページ<記念キャンペーン>', '');
|
72
|
+
66. var regMail = new RegExp('メールアドレス:' + '[\\s\\S]*?' + '現在のお住まい:');
|
73
|
+
67. var Mail = body.match(regMail)[0].replace('メールアドレス:', '').replace('現在のお住まい:', '').replace('\r', '');
|
74
|
+
68. var regJusyoSoui = new RegExp('場合はチェックを入れてください:' + '[\\s\\S]*?' + '現在、不動産に関するお悩み');
|
75
|
+
69. var JusyoSoui = body.match(regJusyoSoui)[0].replace('場合はチェックを入れてください:', '').replace('現在、不動産に関するお悩み', '').replace('\r', '');
|
76
|
+
70. var regOnayami = new RegExp('お悩みやご相談等はございますか:' + '[\\s\\S]*?' + '『ある』とご回答の場合、ご相談内容をご記入ください:');
|
77
|
+
71. var Onayami = body.match(regOnayami)[0].replace('お悩みやご相談等はございますか:', '').replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('\r', '');
|
78
|
+
72.
|
79
|
+
73. id
|
80
|
+
74.
|
81
|
+
75. // 同じメールを読み込まないように、メッセージを既読にする
|
82
|
+
76. threads[i].markRead();
|
83
|
+
77.
|
84
|
+
78. // それぞれの項目をセルを指定してスプレッドシートへ転記
|
85
|
+
79. sheet.getRange(row,1).setValue(date);
|
86
|
+
80. sheet.getRange(row,2).setValue([Syohinn]);
|
87
|
+
81. sheet.getRange(row,3).setValue([Kikkake]);
|
88
|
+
82. sheet.getRange(row,4).setValue([CODE]);
|
89
|
+
83. sheet.getRange(row,5).setValue([BukkenAREA]);
|
90
|
+
84. sheet.getRange(row,6).setValue([TenpoName]);
|
91
|
+
85. sheet.getRange(row,7).setValue([TantousyaName]);
|
92
|
+
86. sheet.getRange(row,8).setValue([NameKanji]);
|
93
|
+
87. sheet.getRange(row,9).setValue([NameFurigana]);
|
94
|
+
88. sheet.getRange(row,10).setValue([Seinengappi]);
|
95
|
+
89. sheet.getRange(row,11).setValue([TelNumber]);
|
96
|
+
90. sheet.getRange(row,12).setValue([Mail]);
|
97
|
+
91. sheet.getRange(row,13).setValue([Jusyo]);
|
98
|
+
92. sheet.getRange(row,14).setValue([JusyoCode]);
|
99
|
+
93. sheet.getRange(row,15).setValue([Onayami]);
|
100
|
+
94. sheet.getRange(row,16).setValue([Onayami2]);
|
101
|
+
95. sheet.getRange(row,17).setValue([Renrakuhouhou]);
|
102
|
+
96. sheet.getRange(row,18).setValue([SNS]);
|
103
|
+
97. sheet.getRange(row,19).setValue([Youbou]);
|
104
|
+
98. sheet.getRange(row,20).setValue([Another]);
|
105
|
+
99. sheet.getRange(row,21).setValue([id]);
|
106
|
+
100. row++
|
107
|
+
101.
|
108
|
+
102. // 受信日時順の昇順に並び替え
|
109
|
+
103. var range = sheet.getRange("A:U");
|
110
|
+
104. range.sort({column: 1, ascending: true});
|
111
|
+
105. }
|
112
|
+
106. }
|
113
|
+
107. }
|
114
|
+
108. }
|
115
|
+
109.
|
116
|
+
110. // 同じメッセージIDがある場合は読み込まないように
|
117
|
+
111. function hasId(id) {
|
118
|
+
112. var hasId = data.some(function(array, i, data) {
|
119
|
+
113. return (array[0] === id);
|
120
|
+
114. });
|
121
|
+
115. return hasId;
|
122
|
+
116. }
|
123
|
+
117.
|
124
|
+
118. // この記述で正規表記?
|
125
|
+
119. function fetchData(str, pre, suf) {
|
126
|
+
120. var reg = new RegExp(pre + '.*?' + suf);
|
127
|
+
121. var data = '';
|
128
|
+
122. data = str.match(reg)[0]
|
129
|
+
123. .replace(pre, '')
|
130
|
+
124. .replace(suf, '');
|
131
|
+
125. return data;
|
132
|
+
126. }
|
133
|
+
127.
|
134
134
|
```
|
135
135
|
|
136
136
|
|
1
メール本文、行数を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,131 +3,161 @@
|
|
3
3
|
|
4
4
|
下記URL参考にしております。
|
5
5
|
https://note.com/pc8hara/n/n850e081311c5
|
6
|
+
``````
|
6
|
-
|
7
|
+
0. var sheet = SpreadsheetApp.getActiveSheet();
|
7
|
-
var data = sheet.getRange(7, 21, sheet.getLastRow() + 1).getValues();
|
8
|
+
0. var data = sheet.getRange(7, 21, sheet.getLastRow() + 1).getValues();
|
9
|
+
0.
|
10
|
+
0. function getMail04(){
|
11
|
+
0. var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
|
12
|
+
0.
|
13
|
+
0. var objSheet = objSpreadsheet.getSheetByName("(その他)個人◆記念キャンペーン");
|
14
|
+
0. var sheet = SpreadsheetApp.setActiveSheet(objSheet);
|
15
|
+
0. var start = 0;
|
16
|
+
0.
|
17
|
+
0. // 取得するメールの最大件数
|
18
|
+
0. var max = 1;
|
19
|
+
0.
|
20
|
+
0. // Gmailのラベル名をここに記載
|
21
|
+
0. var threads = GmailApp.search('label:-その他-キャンペーン is:unread',start,max);
|
22
|
+
0.
|
23
|
+
0. // 最後の行探してそれ以降に追加 挿入開始位置
|
24
|
+
0. var Messages = GmailApp.getMessagesForThreads(threads);
|
25
|
+
0. var row = sheet.getLastRow() + 1;
|
26
|
+
0.
|
27
|
+
0. // 見出しがあるためシートの1行目を固定
|
28
|
+
0. sheet.setFrozenRows(1);
|
29
|
+
0.
|
30
|
+
0. // メールから各種情報を取り出す//
|
31
|
+
0. for(var i = 0; i < Messages.length; i++) {
|
32
|
+
0. for(var j = 0; j < Messages[i].length; j++) {
|
33
|
+
0. var id = Messages[i][j].getId();
|
34
|
+
0. if(!hasId(id)){
|
35
|
+
0. var body = Messages[i][j].getPlainBody();
|
36
|
+
0. var date = threads[i].getMessages()[j].getDate();
|
37
|
+
0.
|
38
|
+
0. var regSyohinn = new RegExp('応募賞品:' + '[\\s\\S]*?' + '応募のきっかけ:');
|
39
|
+
0. var Syohinn = body.match(regSyohinn)[0].replace('応募賞品:', '').replace('応募のきっかけ:', '').replace('\r', '');
|
40
|
+
0. var regKikkake = new RegExp('応募のきっかけ:' + '[\\s\\S]*?' + 'キャンペーンコード:');
|
41
|
+
0. var Kikkake = body.match(regKikkake)[0].replace('応募のきっかけ:', '').replace('キャンペーンコード:', '').replace('\r', '');
|
42
|
+
0. var regCODE = new RegExp('キャンペーンコード:' + '[\\s\\S]*?' + 'お取引された物件のエリア:');
|
43
|
+
0. var CODE = body.match(regCODE)[0].replace('キャンペーンコード:', '').replace('お取引された物件のエリア:', '').replace('\r', '');
|
44
|
+
0. var regBukkenAREA = new RegExp('お取引された物件のエリア:' + '[\\s\\S]*?' + 'お取引した店舗名:');
|
45
|
+
0. var BukkenAREA = body.match(regBukkenAREA)[0].replace('お取引された物件のエリア:', '').replace('お取引した店舗名:', '').replace('\r', '');
|
46
|
+
0. var regTenpoName = new RegExp('お取引した店舗名:' + '[\\s\\S]*?' +'担当者名:');
|
47
|
+
0. var TenpoName = body.match(regTenpoName)[0].replace('お取引した店舗名:', '').replace('担当者名:', '').replace('\r', '');
|
48
|
+
0. var regTantousyaName = new RegExp('担当者名:' + '[\\s\\S]*?' +'お名前:');
|
49
|
+
0. var TantousyaName = body.match(regTantousyaName)[0].replace('担当者名:', '').replace('お名前:', '').replace('\r', '');
|
50
|
+
0. var regNameKanji = new RegExp('お名前:' + '[\\s\\S]*?' + 'ふりがな:');
|
51
|
+
0. var NameKanji = body.match(regNameKanji)[0].replace('お名前:', '').replace('ふりがな:', '').replace('\r', '');
|
52
|
+
0. var regNameFurigana = new RegExp('ふりがな:' + '[\\s\\S]*?' + '生年月日:');
|
53
|
+
0. var NameFurigana = body.match(regNameFurigana)[0].replace('ふりがな:', '').replace('生年月日:', '').replace('\r', '');
|
54
|
+
0. var regSeinengappi = new RegExp('生年月日:' + '[\\s\\S]*?' + '携帯電話番号:');
|
55
|
+
0. var Seinengappi = body.match(regSeinengappi)[0].replace('生年月日:', '').replace('携帯電話番号:', '').replace('\r', '');
|
56
|
+
0. var regTelNumber = new RegExp('携帯電話番号:' + '[\\s\\S]*?' + 'メールアドレス:');
|
57
|
+
0. var TelNumber = body.match(regTelNumber)[0].replace('携帯電話番号:', '').replace('メールアドレス:', '').replace('\r', '');
|
58
|
+
0. var regJusyo = new RegExp('住所:' + '[\\s\\S]*?' + '住所コード:');
|
59
|
+
0. var Jusyo = body.match(regJusyo)[0].replace('住所:', '').replace('住所コード:', '').replace('\r', '');
|
60
|
+
0. var regJusyoCode = new RegExp('住所コード:' + '[\\s\\S]*?' + '上記の住所がはがき記載の住所と違う場合はチェックを入れてください:');
|
61
|
+
0. var JusyoCode = body.match(regJusyoCode)[0].replace('住所コード:', '').replace('上記の住所がはがき記載の住所と違う場合はチェックを入れてください:', '').replace('\r', '');
|
62
|
+
0. var regOnayami2 = new RegExp('『ある』とご回答の場合、ご相談内容をご記入ください:' + '[\\s\\S]*?' + 'ご相談内容について弊社からのご連絡方法を選択ください:');
|
63
|
+
**57. **var Onayami2 = body.match(regOnayami2)[0].replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('\r', '');
|
64
|
+
0. var regRenrakuhouhou = new RegExp('ご相談内容について弊社からのご連絡方法を選択ください:' + '[\\s\\S]*?' +'公式SNSをフォローされていますか:');
|
65
|
+
0. var Renrakuhouhou = body.match(regRenrakuhouhou)[0].replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('公式SNSをフォローされていますか:', '').replace('\r', '');
|
66
|
+
0. var regSNS = new RegExp('公式SNSをフォローされていますか:' + '[\\s\\S]*?' + 'その他ご要望等ございましたらご記入ください:');
|
67
|
+
0. var SNS = body.match(regSNS)[0].replace('公式SNSをフォローされていますか:', '').replace('その他ご要望等ございましたらご記入ください:', '').replace('\r', '');
|
68
|
+
0. var regYoubou = new RegExp('その他ご要望等ございましたらご記入ください:' + '[\\s\\S]*?' + '個人情報の取り扱いについて(必ずお読みください):');
|
69
|
+
0. var Youbou = body.match(regYoubou)[0].replace('その他ご要望等ございましたらご記入ください:', '').replace('個人情報の取り扱いについて(必ずお読みください):', '').replace('\r', '');
|
70
|
+
0. var regAnother = new RegExp('個人情報の取り扱いについて(必ずお読みください):' + '[\\s\\S]*?' + 'このメールはホームページ<記念キャンペーン>');
|
71
|
+
0. var Another = body.match(regAnother)[0].replace('個人情報の取り扱いについて(必ずお読みください):', '').replace(/\r?\n/g, '').replace('このメールはホームページ<記念キャンペーン>', '');
|
72
|
+
0. var regMail = new RegExp('メールアドレス:' + '[\\s\\S]*?' + '現在のお住まい:');
|
73
|
+
0. var Mail = body.match(regMail)[0].replace('メールアドレス:', '').replace('現在のお住まい:', '').replace('\r', '');
|
74
|
+
0. var regJusyoSoui = new RegExp('場合はチェックを入れてください:' + '[\\s\\S]*?' + '現在、不動産に関するお悩み');
|
75
|
+
0. var JusyoSoui = body.match(regJusyoSoui)[0].replace('場合はチェックを入れてください:', '').replace('現在、不動産に関するお悩み', '').replace('\r', '');
|
76
|
+
0. var regOnayami = new RegExp('お悩みやご相談等はございますか:' + '[\\s\\S]*?' + '『ある』とご回答の場合、ご相談内容をご記入ください:');
|
77
|
+
0. var Onayami = body.match(regOnayami)[0].replace('お悩みやご相談等はございますか:', '').replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('\r', '');
|
78
|
+
0.
|
79
|
+
0. id
|
80
|
+
0.
|
81
|
+
0. // 同じメールを読み込まないように、メッセージを既読にする
|
82
|
+
0. threads[i].markRead();
|
83
|
+
0.
|
84
|
+
0. // それぞれの項目をセルを指定してスプレッドシートへ転記
|
85
|
+
0. sheet.getRange(row,1).setValue(date);
|
86
|
+
0. sheet.getRange(row,2).setValue([Syohinn]);
|
87
|
+
0. sheet.getRange(row,3).setValue([Kikkake]);
|
88
|
+
0. sheet.getRange(row,4).setValue([CODE]);
|
89
|
+
0. sheet.getRange(row,5).setValue([BukkenAREA]);
|
90
|
+
0. sheet.getRange(row,6).setValue([TenpoName]);
|
91
|
+
0. sheet.getRange(row,7).setValue([TantousyaName]);
|
92
|
+
0. sheet.getRange(row,8).setValue([NameKanji]);
|
93
|
+
0. sheet.getRange(row,9).setValue([NameFurigana]);
|
94
|
+
0. sheet.getRange(row,10).setValue([Seinengappi]);
|
95
|
+
0. sheet.getRange(row,11).setValue([TelNumber]);
|
96
|
+
0. sheet.getRange(row,12).setValue([Mail]);
|
97
|
+
0. sheet.getRange(row,13).setValue([Jusyo]);
|
98
|
+
0. sheet.getRange(row,14).setValue([JusyoCode]);
|
99
|
+
0. sheet.getRange(row,15).setValue([Onayami]);
|
100
|
+
0. sheet.getRange(row,16).setValue([Onayami2]);
|
101
|
+
0. sheet.getRange(row,17).setValue([Renrakuhouhou]);
|
102
|
+
0. sheet.getRange(row,18).setValue([SNS]);
|
103
|
+
0. sheet.getRange(row,19).setValue([Youbou]);
|
104
|
+
0. sheet.getRange(row,20).setValue([Another]);
|
105
|
+
0. sheet.getRange(row,21).setValue([id]);
|
106
|
+
0. row++
|
107
|
+
0.
|
108
|
+
0. // 受信日時順の昇順に並び替え
|
109
|
+
0. var range = sheet.getRange("A:U");
|
110
|
+
0. range.sort({column: 1, ascending: true});
|
111
|
+
0. }
|
112
|
+
0. }
|
113
|
+
0. }
|
114
|
+
0. }
|
115
|
+
0.
|
116
|
+
0. // 同じメッセージIDがある場合は読み込まないように
|
117
|
+
0. function hasId(id) {
|
118
|
+
0. var hasId = data.some(function(array, i, data) {
|
119
|
+
0. return (array[0] === id);
|
120
|
+
0. });
|
121
|
+
0. return hasId;
|
122
|
+
0. }
|
123
|
+
0.
|
124
|
+
0. // この記述で正規表記?
|
125
|
+
0. function fetchData(str, pre, suf) {
|
126
|
+
0. var reg = new RegExp(pre + '.*?' + suf);
|
127
|
+
0. var data = '';
|
128
|
+
0. data = str.match(reg)[0]
|
129
|
+
0. .replace(pre, '')
|
130
|
+
0. .replace(suf, '');
|
131
|
+
0. return data;
|
132
|
+
0. }
|
133
|
+
0.
|
134
|
+
```
|
8
135
|
|
9
|
-
function getMail04(){
|
10
|
-
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
|
11
136
|
|
12
|
-
var objSheet = objSpreadsheet.getSheetByName("(その他)個人◆記念キャンペーン");
|
13
|
-
|
137
|
+
下記のようなメールを受信し、label:-その他-キャンペーンに分けている状態です。
|
14
|
-
var start = 0;
|
15
138
|
|
139
|
+
【メール本文】
|
16
|
-
|
140
|
+
【注意】このメールに直接返信すると、キャンペーン事務局へメールが送られ、
|
17
|
-
|
141
|
+
お客様には届きません。
|
142
|
+
◆記念キャンペーン
|
18
143
|
|
144
|
+
[お問い合わせ内容]
|
145
|
+
応募賞品:
|
146
|
+
応募のきっかけ:はがき
|
147
|
+
キャンペーンコード:210021691
|
148
|
+
お取引された物件のエリア:その他
|
149
|
+
お取引した店舗名:
|
150
|
+
担当者名:
|
151
|
+
お名前:
|
152
|
+
ふりがな:
|
153
|
+
生年月日:
|
154
|
+
携帯電話番号:
|
155
|
+
メールアドレス:
|
156
|
+
住所:
|
157
|
+
住所コード:
|
158
|
+
上記の住所がはがき記載の住所と違う場合はチェックを入れてください:同じ住所
|
19
|
-
|
159
|
+
公式SNSをフォローされていますか:フォローしていない
|
20
|
-
var threads = GmailApp.search('label:-その他-キャンペーン is:unread',start,max);
|
21
|
-
|
22
|
-
|
160
|
+
個人情報の取り扱いについて(必ずお読みください):上記3点に同意する
|
23
|
-
var Messages = GmailApp.getMessagesForThreads(threads);
|
24
|
-
var row = sheet.getLastRow() + 1;
|
25
161
|
|
26
|
-
// 見出しがあるためシートの1行目を固定
|
27
|
-
sheet.setFrozenRows(1);
|
28
|
-
|
29
|
-
// メールから各種情報を取り出す//
|
30
|
-
for(var i = 0; i < Messages.length; i++) {
|
31
|
-
for(var j = 0; j < Messages[i].length; j++) {
|
32
|
-
|
162
|
+
このメールはホームページ<記念キャンペーン>から送信されています。
|
33
|
-
if(!hasId(id)){
|
34
|
-
var body = Messages[i][j].getPlainBody();
|
35
|
-
var date = threads[i].getMessages()[j].getDate();
|
36
|
-
|
37
|
-
var regSyohinn = new RegExp('応募賞品:' + '[\\s\\S]*?' + '応募のきっかけ:');
|
38
|
-
var Syohinn = body.match(regSyohinn)[0].replace('応募賞品:', '').replace('応募のきっかけ:', '').replace('\r', '');
|
39
|
-
var regKikkake = new RegExp('応募のきっかけ:' + '[\\s\\S]*?' + 'キャンペーンコード:');
|
40
|
-
var Kikkake = body.match(regKikkake)[0].replace('応募のきっかけ:', '').replace('キャンペーンコード:', '').replace('\r', '');
|
41
|
-
var regCODE = new RegExp('キャンペーンコード:' + '[\\s\\S]*?' + 'お取引された物件のエリア:');
|
42
|
-
var CODE = body.match(regCODE)[0].replace('キャンペーンコード:', '').replace('お取引された物件のエリア:', '').replace('\r', '');
|
43
|
-
var regBukkenAREA = new RegExp('お取引された物件のエリア:' + '[\\s\\S]*?' + 'お取引した店舗名:');
|
44
|
-
var BukkenAREA = body.match(regBukkenAREA)[0].replace('お取引された物件のエリア:', '').replace('お取引した店舗名:', '').replace('\r', '');
|
45
|
-
var regTenpoName = new RegExp('お取引した店舗名:' + '[\\s\\S]*?' +'担当者名:');
|
46
|
-
var TenpoName = body.match(regTenpoName)[0].replace('お取引した店舗名:', '').replace('担当者名:', '').replace('\r', '');
|
47
|
-
var regTantousyaName = new RegExp('担当者名:' + '[\\s\\S]*?' +'お名前:');
|
48
|
-
var TantousyaName = body.match(regTantousyaName)[0].replace('担当者名:', '').replace('お名前:', '').replace('\r', '');
|
49
|
-
var regNameKanji = new RegExp('お名前:' + '[\\s\\S]*?' + 'ふりがな:');
|
50
|
-
var NameKanji = body.match(regNameKanji)[0].replace('お名前:', '').replace('ふりがな:', '').replace('\r', '');
|
51
|
-
var regNameFurigana = new RegExp('ふりがな:' + '[\\s\\S]*?' + '生年月日:');
|
52
|
-
var NameFurigana = body.match(regNameFurigana)[0].replace('ふりがな:', '').replace('生年月日:', '').replace('\r', '');
|
53
|
-
var regSeinengappi = new RegExp('生年月日:' + '[\\s\\S]*?' + '携帯電話番号:');
|
54
|
-
var Seinengappi = body.match(regSeinengappi)[0].replace('生年月日:', '').replace('携帯電話番号:', '').replace('\r', '');
|
55
|
-
var regTelNumber = new RegExp('携帯電話番号:' + '[\\s\\S]*?' + 'メールアドレス:');
|
56
|
-
var TelNumber = body.match(regTelNumber)[0].replace('携帯電話番号:', '').replace('メールアドレス:', '').replace('\r', '');
|
57
|
-
var regJusyo = new RegExp('住所:' + '[\\s\\S]*?' + '住所コード:');
|
58
|
-
var Jusyo = body.match(regJusyo)[0].replace('住所:', '').replace('住所コード:', '').replace('\r', '');
|
59
|
-
var regJusyoCode = new RegExp('住所コード:' + '[\\s\\S]*?' + '上記の住所がはがき記載の住所と違う場合はチェックを入れてください:');
|
60
|
-
var JusyoCode = body.match(regJusyoCode)[0].replace('住所コード:', '').replace('上記の住所がはがき記載の住所と違う場合はチェックを入れてください:', '').replace('\r', '');
|
61
|
-
var regOnayami2 = new RegExp('『ある』とご回答の場合、ご相談内容をご記入ください:' + '[\\s\\S]*?' + 'ご相談内容について弊社からのご連絡方法を選択ください:');
|
62
|
-
var Onayami2 = body.match(regOnayami2)[0].replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('\r', '');
|
63
|
-
var regRenrakuhouhou = new RegExp('ご相談内容について弊社からのご連絡方法を選択ください:' + '[\\s\\S]*?' +'公式SNSをフォローされていますか:');
|
64
|
-
var Renrakuhouhou = body.match(regRenrakuhouhou)[0].replace('ご相談内容について弊社からのご連絡方法を選択ください:', '').replace('公式SNSをフォローされていますか:', '').replace('\r', '');
|
65
|
-
var regSNS = new RegExp('公式SNSをフォローされていますか:' + '[\\s\\S]*?' + 'その他ご要望等ございましたらご記入ください:');
|
66
|
-
var SNS = body.match(regSNS)[0].replace('公式SNSをフォローされていますか:', '').replace('その他ご要望等ございましたらご記入ください:', '').replace('\r', '');
|
67
|
-
var regYoubou = new RegExp('その他ご要望等ございましたらご記入ください:' + '[\\s\\S]*?' + '個人情報の取り扱いについて(必ずお読みください):');
|
68
|
-
var Youbou = body.match(regYoubou)[0].replace('その他ご要望等ございましたらご記入ください:', '').replace('個人情報の取り扱いについて(必ずお読みください):', '').replace('\r', '');
|
69
|
-
var regAnother = new RegExp('個人情報の取り扱いについて(必ずお読みください):' + '[\\s\\S]*?' + 'このメールはホームページ<記念キャンペーン>');
|
70
|
-
var Another = body.match(regAnother)[0].replace('個人情報の取り扱いについて(必ずお読みください):', '').replace(/\r?\n/g, '').replace('このメールはホームページ<記念キャンペーン>', '');
|
71
|
-
var regMail = new RegExp('メールアドレス:' + '[\\s\\S]*?' + '現在のお住まい:');
|
72
|
-
var Mail = body.match(regMail)[0].replace('メールアドレス:', '').replace('現在のお住まい:', '').replace('\r', '');
|
73
|
-
var regJusyoSoui = new RegExp('場合はチェックを入れてください:' + '[\\s\\S]*?' + '現在、不動産に関するお悩み');
|
74
|
-
var JusyoSoui = body.match(regJusyoSoui)[0].replace('場合はチェックを入れてください:', '').replace('現在、不動産に関するお悩み', '').replace('\r', '');
|
75
|
-
var regOnayami = new RegExp('お悩みやご相談等はございますか:' + '[\\s\\S]*?' + '『ある』とご回答の場合、ご相談内容をご記入ください:');
|
76
|
-
var Onayami = body.match(regOnayami)[0].replace('お悩みやご相談等はございますか:', '').replace('『ある』とご回答の場合、ご相談内容をご記入ください:', '').replace('\r', '');
|
77
|
-
|
78
|
-
id
|
79
|
-
|
80
|
-
// 同じメールを読み込まないように、メッセージを既読にする
|
81
|
-
threads[i].markRead();
|
82
|
-
|
83
|
-
// それぞれの項目をセルを指定してスプレッドシートへ転記
|
84
|
-
sheet.getRange(row,1).setValue(date);
|
85
|
-
sheet.getRange(row,2).setValue([Syohinn]);
|
86
|
-
sheet.getRange(row,3).setValue([Kikkake]);
|
87
|
-
sheet.getRange(row,4).setValue([CODE]);
|
88
|
-
sheet.getRange(row,5).setValue([BukkenAREA]);
|
89
|
-
sheet.getRange(row,6).setValue([TenpoName]);
|
90
|
-
sheet.getRange(row,7).setValue([TantousyaName]);
|
91
|
-
sheet.getRange(row,8).setValue([NameKanji]);
|
92
|
-
sheet.getRange(row,9).setValue([NameFurigana]);
|
93
|
-
sheet.getRange(row,10).setValue([Seinengappi]);
|
94
|
-
sheet.getRange(row,11).setValue([TelNumber]);
|
95
|
-
sheet.getRange(row,12).setValue([Mail]);
|
96
|
-
sheet.getRange(row,13).setValue([Jusyo]);
|
97
|
-
sheet.getRange(row,14).setValue([JusyoCode]);
|
98
|
-
sheet.getRange(row,15).setValue([Onayami]);
|
99
|
-
sheet.getRange(row,16).setValue([Onayami2]);
|
100
|
-
sheet.getRange(row,17).setValue([Renrakuhouhou]);
|
101
|
-
sheet.getRange(row,18).setValue([SNS]);
|
102
|
-
sheet.getRange(row,19).setValue([Youbou]);
|
103
|
-
sheet.getRange(row,20).setValue([Another]);
|
104
|
-
sheet.getRange(row,21).setValue([id]);
|
105
|
-
row++
|
106
|
-
|
107
|
-
|
163
|
+
不明点などは、キャンペーン事務局までご連絡ください。
|
108
|
-
var range = sheet.getRange("A:U");
|
109
|
-
range.sort({column: 1, ascending: true});
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
|
115
|
-
// 同じメッセージIDがある場合は読み込まないように
|
116
|
-
function hasId(id) {
|
117
|
-
var hasId = data.some(function(array, i, data) {
|
118
|
-
return (array[0] === id);
|
119
|
-
});
|
120
|
-
return hasId;
|
121
|
-
}
|
122
|
-
|
123
|
-
// この記述で正規表記?
|
124
|
-
function fetchData(str, pre, suf) {
|
125
|
-
var reg = new RegExp(pre + '.*?' + suf);
|
126
|
-
var data = '';
|
127
|
-
data = str.match(reg)[0]
|
128
|
-
.replace(pre, '')
|
129
|
-
.replace(suf, '');
|
130
|
-
return data;
|
131
|
-
}
|
132
|
-
|
133
|
-
```
|