teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

細かい修正

2023/07/12 06:24

投稿

Oni_hiro
Oni_hiro

スコア5

title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
 
24
24
  ## ③該当のソースコード
25
25
 
26
- ```GAS
26
+ ```JavaScript
27
27
  function mailHTML3() {
28
28
 
29
29
  let ss = SpreadsheetApp.getActiveSpreadsheet();
@@ -53,11 +53,6 @@
53
53
  let name = data[i][4]; // 宛名
54
54
  let body = data[i][5]; // 本文
55
55
  let subject = data[i][6]; // 件名
56
- let appoDate = data[i][7]; // アポ候補日時
57
- let signature = data[i][8]; // 署名欄
58
- let sender_name = data[i][9]; // 送信者_姓
59
- let card_ex = data[i][10]; // 名刺交換者_姓
60
- let talk = data[i][11]; // 展示会でのやり取り
61
56
 
62
57
 
63
58
  //企業名の置き換え
@@ -66,22 +61,10 @@
66
61
  body = body.replace(/{{宛名}}/g,name);
67
62
  //宛名_姓の置き換え
68
63
  body = body.replace(/{{宛名_姓}}/g,family_name);
69
- //アポ候補日時の置き換え
70
- body = body.replace(/{{アポ候補日時}}/g,appoDate);
71
64
  //署名欄の置き換え
72
65
  body = body.replace(/{{署名欄}}/g,signature);
73
66
  //件名の宛名_姓の置き換え
74
67
  subject = subject.replace(/{{宛名_姓}}/g,family_name);
75
- //アポ候補日時の置き換え
76
- body = body.replace(/{{送信者_姓}}/g,sender_name);
77
- //アポ候補日時の置き換え
78
- body = body.replace(/{{名刺交換者_姓}}/g,card_ex);
79
- //アポ候補日時の置き換え
80
- body = body.replace(/{{展示会でのやり取り}}/g,talk);
81
- // //アポ候補日時の置き換え
82
- // body = body.replace(/{{アポ候補日時}}/g,appoDate);
83
- // //アポ候補日時の置き換え
84
- // body = body.replace(/{{アポ候補日時}}/g,appoDate);
85
68
 
86
69
 
87
70
  body_html = body
@@ -102,21 +85,18 @@
102
85
  いつもお世話になっております。
103
86
  株式会社●●の {{送信者_姓}} と申します。
104
87
 
105
- {{宛名_姓}} 様には、以前我々のメンバー {{名刺交換者_姓}}と名刺交換がございましたので、
88
+ {{宛名_姓}} 様には、以前我々のメンバー {{名刺交換者_姓}}とやり取りがございましたので、
106
89
  今回はお得な情報をお伝えいたします。
107
90
 
108
91
 
109
- ## ⑤Spreadsheetの画面
92
+ ## ⑤追記情報1(7/12 13:20)
110
93
 
111
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-11/aa01fc69-9b91-4b82-af00-7c68aea5927e.png)
112
-
113
-
114
- ## ⑥追記情報1(7/12 13:20)
115
-
116
94
  おかげさまでスプレッドシート状のデータとのリプレイスと、スタイルの適用は対応できました。
117
95
 
96
+ <入力スプレッドシート>
118
97
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/80c47682-66b0-4ee3-b3f4-80ee298c8c65.png)
119
98
 
99
+ <Gmail下書き>
120
100
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/0d8c2490-3519-4683-a043-ce8591fd461e.png)
121
101
 
122
102
  あとは現在添付されている画像をインライン表示できれば万々歳なのですが、
@@ -128,7 +108,7 @@
128
108
  この辺についてもう少しかみ砕いてご助言をいただけますと大変ありがたいのですが....
129
109
 
130
110
 
131
- ## 追記情報2(7/12 15:15)※希望通りのものが実現できました
111
+ ## 追記情報2(7/12 15:15)※希望通りのものが実現できました
132
112
 
133
113
  ※RichTextAppという教えていただいたライブラリを事前にインストール済
134
114
  https://github.com/tanaikech/RichTextApp#richtexttohtmlforspreadsheet
@@ -156,7 +136,6 @@
156
136
  // let body = data[i][5]; // 本文 ※今回は使用せず。プレーンテキストの場合はこれでもOK
157
137
  let body = RichTextApp.RichTextToHTMLForSpreadsheet({range : sheet.getRange('F3')});
158
138
  let subject = data[i][6]; // 件名
159
- let appoDate = data[i][7]; // アポ候補日時
160
139
 
161
140
 
162
141
  //スプレッドシートの本分内の{{プレースホルダ}}の中身の置き換え(一部)
@@ -185,15 +164,13 @@
185
164
  }
186
165
  ```
187
166
 
188
-
167
+ <入力スプレッドシート>
189
168
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/eb030b82-0a63-4f0e-b62e-511349ad3c37.png)
190
169
 
170
+ <Gmail下書き>
191
171
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/e4dad070-2478-499a-891a-7535147b975b.png)
192
172
 
193
173
 
194
- ## ⑥追記情報3
195
174
 
196
175
 
197
-
198
-
199
176
  ここにより詳細な情報を記載してください。

3

おかげさまで希望通りのものが実現できそうですので結果を「追記事項2」にまとめました。

2023/07/12 06:15

投稿

Oni_hiro
Oni_hiro

スコア5

title CHANGED
File without changes
body CHANGED
@@ -128,9 +128,69 @@
128
128
  この辺についてもう少しかみ砕いてご助言をいただけますと大変ありがたいのですが....
129
129
 
130
130
 
131
- ## ⑥追記情報2
131
+ ## ⑥追記情報2(7/12 15:15)※希望通りのものが実現できました
132
132
 
133
+ ※RichTextAppという教えていただいたライブラリを事前にインストール済
134
+ https://github.com/tanaikech/RichTextApp#richtexttohtmlforspreadsheet
133
135
 
136
+ ```JavaScript
137
+
138
+ function gmAuto(){
139
+ let ss = SpreadsheetApp.openById("スプレッドシートのID");
140
+ let sheet = ss.getSheets()[6];
141
+ let range = sheet.getDataRange();
142
+ let data = range.getValues();
143
+
144
+
145
+ //Googleドライブから画像を取得する。
146
+ const imgA = DriveApp.getFileById('インラインに挿入する画像のID').getBlob();
147
+
148
+
149
+ // 情報を取りたいi行目がスプレッドシートの3行目から始まるので0,1,2の「2」からスタート
150
+ for(let i = 2; i < data.length; i++){
151
+
152
+ let recipient = data[i][0]; // 宛先
153
+ let company = data[i][1]; // 企業名
154
+ let family_name = data[i][2]; // 宛名_姓
155
+ let name = data[i][4]; // 宛名
156
+ // let body = data[i][5]; // 本文 ※今回は使用せず。プレーンテキストの場合はこれでもOK
157
+ let body = RichTextApp.RichTextToHTMLForSpreadsheet({range : sheet.getRange('F3')});
158
+ let subject = data[i][6]; // 件名
159
+ let appoDate = data[i][7]; // アポ候補日時
160
+
161
+
162
+ //スプレッドシートの本分内の{{プレースホルダ}}の中身の置き換え(一部)
163
+ body = body.replace(/{{企業名}}/g,company);
164
+ body = body.replace(/{{宛名}}/g,name);
165
+ body = body.replace(/{{宛名_姓}}/g,family_name);
166
+ body = body.replace(/{{アポ候補日時}}/g,appoDate);
167
+ subject = subject.replace(/{{宛名_姓}}/g,family_name);
168
+
169
+ // プレースホルダ{{画像}}で本文の内容をHTMLのimgタグに差し替え
170
+ body = body.replace(/{{画像}}/g,"<img src='cid:inlineImg'>");
171
+
172
+
173
+ const options = {
174
+ cc: 'aaa@example.com,bbb@example.com',
175
+ htmlBody: body,
176
+ inlineImages: {
177
+ inlineImg: imgA
178
+ }
179
+ }
180
+
181
+ GmailApp.createDraft(recipient,subject,body,options);
182
+
183
+ };
184
+
185
+ }
186
+ ```
187
+
188
+
189
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/eb030b82-0a63-4f0e-b62e-511349ad3c37.png)
190
+
191
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/e4dad070-2478-499a-891a-7535147b975b.png)
192
+
193
+
134
194
  ## ⑥追記情報3
135
195
 
136
196
 

2

訂正

2023/07/12 04:24

投稿

Oni_hiro
Oni_hiro

スコア5

title CHANGED
File without changes
body CHANGED
@@ -121,9 +121,10 @@
121
121
 
122
122
  あとは現在添付されている画像をインライン表示できれば万々歳なのですが、
123
123
 
124
- ** >画像に関してはプレースホルダを利用してreplaceかけるのがいいかと思います。
125
- **
126
124
 
125
+  >画像に関してはプレースホルダを利用してreplaceかけるのがいいかと思います。
126
+
127
+
127
128
  この辺についてもう少しかみ砕いてご助言をいただけますと大変ありがたいのですが....
128
129
 
129
130
 

1

ご助言に基づいた実践結果の追記

2023/07/12 04:23

投稿

Oni_hiro
Oni_hiro

スコア5

title CHANGED
File without changes
body CHANGED
@@ -111,11 +111,28 @@
111
111
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-11/aa01fc69-9b91-4b82-af00-7c68aea5927e.png)
112
112
 
113
113
 
114
- ## ⑥補足情報
114
+ ## ⑥追記情報1(7/12 13:20)
115
115
 
116
+ おかげさまでスプレッドシート状のデータとのリプレイスと、スタイルの適用は対応できました。
116
117
 
118
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/80c47682-66b0-4ee3-b3f4-80ee298c8c65.png)
117
119
 
120
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-12/0d8c2490-3519-4683-a043-ce8591fd461e.png)
118
121
 
122
+ あとは現在添付されている画像をインライン表示できれば万々歳なのですが、
119
123
 
124
+ ** >画像に関してはプレースホルダを利用してreplaceかけるのがいいかと思います。
125
+ **
120
126
 
127
+ この辺についてもう少しかみ砕いてご助言をいただけますと大変ありがたいのですが....
128
+
129
+
130
+ ## ⑥追記情報2
131
+
132
+
133
+ ## ⑥追記情報3
134
+
135
+
136
+
137
+
121
138
  ここにより詳細な情報を記載してください。