質問編集履歴
4
違う質問を更新して投稿したため、解決済みの時点まで情報を戻した
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【GAS】異なる添付ファイルを呼び出してメール送信をしたいが、
|
1
|
+
【GAS】異なる添付ファイルを呼び出してメール送信をしたいが、エラーで送信できない
|
body
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
異なる宛先に異なる添付ファイルをつけて、メールを送信したいと思っています。
|
7
7
|
|
8
8
|
■スプレッドシートのイメージ
|
9
|
-
A列(namae) B列(company) C列(address) D列(ichiran:ファイル名)
|
9
|
+
A列(namae) B列(company) C列(address) D列(ichiran:ファイル名)
|
10
10
|
|
11
11
|
■ドキュメントのイメージ
|
12
12
|
●●会社(B列より)
|
@@ -14,12 +14,8 @@
|
|
14
14
|
いつもお世話になっております。~
|
15
15
|
|
16
16
|
### 発生している問題・エラーメッセージ
|
17
|
-
Invalid argument: attachments
|
18
17
|
|
19
|
-
添付ファイルを呼び出したいのですが、宛先によってファイル数が違うため、空白を無視しないといけませんが、ifで空白を避けようとすると最初と最後のファイルしか添付されません。
|
20
|
-
ifで繰り返すのがそもそも間違いだと思うのですが、他のサイトを見てもこれでできない理由もよくわかりません。
|
21
18
|
|
22
|
-
またとても効率の悪い書き方をしていると思いますが、ご容赦ください。
|
23
19
|
|
24
20
|
### 該当のソースコード
|
25
21
|
|
@@ -58,59 +54,22 @@
|
|
58
54
|
|
59
55
|
const ichiran = sheet.getRange(i, 4).getValue();
|
60
56
|
|
61
|
-
const kijitsu = sheet.getRange(i, 5).getValue();
|
62
|
-
|
63
|
-
const ichiran1 = sheet.getRange(i, 6).getValue();
|
64
|
-
|
65
|
-
const ichiran2 = sheet.getRange(i, 7).getValue();
|
66
|
-
|
67
|
-
const ichiran3 = sheet.getRange(i, 8).getValue();
|
68
57
|
|
69
|
-
const ichiran4 = sheet.getRange(i, 9).getValue();
|
70
|
-
|
71
|
-
const ichiran5 = sheet.getRange(i, 10).getValue();
|
72
|
-
|
73
|
-
const ichiran6 = sheet.getRange(i, 11).getValue();
|
74
|
-
|
75
|
-
const ichiran7 = sheet.getRange(i, 12).getValue();
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
58
|
const body = docText
|
82
59
|
|
83
60
|
.replace('{会社}',company)
|
84
61
|
|
85
62
|
.replace('{名前}',namae)
|
86
63
|
|
87
|
-
.replace('{期日}',kijitsu);
|
88
64
|
|
89
|
-
|
90
|
-
|
91
65
|
var tempu = DriveApp.getFilesByName(ichiran).next();
|
92
|
-
if(ichiran1 !='') {var tempu1 = DriveApp.getFilesByName(ichiran1).next();
|
93
|
-
}
|
94
|
-
if(ichiran2 !='') {var tempu2 = DriveApp.getFilesByName(ichiran2).next();
|
95
|
-
}
|
96
|
-
if(ichiran3 !='') {var tempu3 = DriveApp.getFilesByName(ichiran3).next();
|
97
|
-
}
|
98
|
-
if(ichiran4 !='') {var tempu4 = DriveApp.getFilesByName(ichiran4).next();
|
99
|
-
}
|
100
|
-
if(ichiran5 !='') {var tempu5 = DriveApp.getFilesByName(ichiran5).next();
|
101
|
-
}
|
102
|
-
if(ichiran6 !='') {var tempu6 = DriveApp.getFilesByName(ichiran6).next();
|
103
|
-
}
|
104
|
-
if(ichiran7 !='') {var tempu7 = DriveApp.getFilesByName(ichiran7).next();
|
105
|
-
}
|
106
|
-
|
107
66
|
|
108
67
|
|
109
68
|
GmailApp.sendEmail(address, subject, body, {
|
110
69
|
|
111
70
|
cc: '@gmail.com',
|
112
71
|
|
113
|
-
attachments: [tempu
|
72
|
+
attachments: [tempu]});
|
114
73
|
|
115
74
|
}
|
116
75
|
|
@@ -122,10 +81,9 @@
|
|
122
81
|
|
123
82
|
### 試したこと
|
124
83
|
|
125
|
-
ifで空白を避ける条件でgetfilesByNameを命令するようにしてみました。
|
126
84
|
|
127
85
|
### 補足情報(FW/ツールのバージョンなど)
|
128
|
-
|
86
|
+
var tempu = DriveApp.getFilesByName(ichiran).next()
|
129
|
-
|
87
|
+
|
130
88
|
これで指示すると動いたのですが、指定したファイルが勝手にpdf変換される事象が発生しております。
|
131
|
-
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?
|
89
|
+
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?
|
3
複数のファイルを送る機能を追加したいが、空白を無視できない
title
CHANGED
File without changes
|
body
CHANGED
@@ -126,6 +126,6 @@
|
|
126
126
|
|
127
127
|
### 補足情報(FW/ツールのバージョンなど)
|
128
128
|
~~var tempu = DriveApp.getFilesByName(ichiran).next()
|
129
|
-
|
129
|
+
~~~~
|
130
130
|
これで指示すると動いたのですが、指定したファイルが勝手にpdf変換される事象が発生しております。
|
131
131
|
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?~~
|
2
複数のファイルを送る機能を追加したいが、空白を無視できない
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【GAS】異なる添付ファイルを呼び出してメール送信をしたいが、
|
1
|
+
【GAS】異なる添付ファイルを呼び出してメール送信をしたいが、空白を無視して複数の添付ファイルを作成したい
|
body
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
+
※アドバイスありがとうございます。メールにファイルが添付されて、送信がされるところまでは解決できました。
|
2
3
|
|
3
4
|
GAS初心者です。
|
4
5
|
スプレッドシートに作成したリストと、ドキュメントに保存した文章を使って、
|
5
6
|
異なる宛先に異なる添付ファイルをつけて、メールを送信したいと思っています。
|
6
7
|
|
7
8
|
■スプレッドシートのイメージ
|
8
|
-
A列(namae) B列(company) C列(address) D列(ichiran:ファイル
|
9
|
+
A列(namae) B列(company) C列(address) D列(ichiran:ファイル名) E列以降:ichiran2~7
|
9
10
|
|
10
11
|
■ドキュメントのイメージ
|
11
12
|
●●会社(B列より)
|
@@ -13,56 +14,118 @@
|
|
13
14
|
いつもお世話になっております。~
|
14
15
|
|
15
16
|
### 発生している問題・エラーメッセージ
|
16
|
-
```
|
17
|
-
|
17
|
+
Invalid argument: attachments
|
18
|
-
どうしたら解決しますでしょうか?
|
19
18
|
|
20
|
-
|
19
|
+
添付ファイルを呼び出したいのですが、宛先によってファイル数が違うため、空白を無視しないといけませんが、ifで空白を避けようとすると最初と最後のファイルしか添付されません。
|
21
|
-
|
20
|
+
ifで繰り返すのがそもそも間違いだと思うのですが、他のサイトを見てもこれでできない理由もよくわかりません。
|
22
|
-
```
|
23
21
|
|
22
|
+
またとても効率の悪い書き方をしていると思いますが、ご容赦ください。
|
23
|
+
|
24
24
|
### 該当のソースコード
|
25
25
|
|
26
26
|
```ここに言語名を入力
|
27
27
|
function sendMail(){
|
28
28
|
|
29
|
+
|
30
|
+
|
29
31
|
const sheet = SpreadsheetApp.getActiveSheet();
|
32
|
+
|
30
33
|
const lastRow = sheet.getLastRow();;
|
34
|
+
|
31
35
|
|
36
|
+
|
32
|
-
const DOC_URL = 'メールの
|
37
|
+
const DOC_URL = 'メールの本文';
|
38
|
+
|
33
39
|
const doc = DocumentApp.openByUrl(DOC_URL);
|
40
|
+
|
34
41
|
const docText = doc.getBody().getText();
|
35
42
|
|
43
|
+
|
44
|
+
|
36
45
|
const subject = 'タイトル';
|
37
46
|
|
38
|
-
|
47
|
+
|
39
48
|
|
49
|
+
for(let i = 3; i <= lastRow; i++){
|
50
|
+
|
51
|
+
|
52
|
+
|
40
53
|
const namae = sheet.getRange(i, 1).getValue();
|
54
|
+
|
41
55
|
const company = sheet.getRange(i, 2).getValue();
|
56
|
+
|
42
57
|
const address = sheet.getRange(i, 3).getValue();
|
43
|
-
var ichiran = sheet.getRange(i, 4).getValue();
|
44
58
|
|
59
|
+
const ichiran = sheet.getRange(i, 4).getValue();
|
60
|
+
|
61
|
+
const kijitsu = sheet.getRange(i, 5).getValue();
|
62
|
+
|
63
|
+
const ichiran1 = sheet.getRange(i, 6).getValue();
|
64
|
+
|
65
|
+
const ichiran2 = sheet.getRange(i, 7).getValue();
|
66
|
+
|
67
|
+
const ichiran3 = sheet.getRange(i, 8).getValue();
|
45
68
|
|
69
|
+
const ichiran4 = sheet.getRange(i, 9).getValue();
|
70
|
+
|
71
|
+
const ichiran5 = sheet.getRange(i, 10).getValue();
|
72
|
+
|
73
|
+
const ichiran6 = sheet.getRange(i, 11).getValue();
|
74
|
+
|
75
|
+
const ichiran7 = sheet.getRange(i, 12).getValue();
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
46
81
|
const body = docText
|
82
|
+
|
47
83
|
.replace('{会社}',company)
|
84
|
+
|
48
85
|
.replace('{名前}',namae)
|
86
|
+
|
87
|
+
.replace('{期日}',kijitsu);
|
88
|
+
|
49
89
|
|
90
|
+
|
50
|
-
var tempu = DriveApp.
|
91
|
+
var tempu = DriveApp.getFilesByName(ichiran).next();
|
51
|
-
|
92
|
+
if(ichiran1 !='') {var tempu1 = DriveApp.getFilesByName(ichiran1).next();
|
93
|
+
}
|
94
|
+
if(ichiran2 !='') {var tempu2 = DriveApp.getFilesByName(ichiran2).next();
|
95
|
+
}
|
96
|
+
if(ichiran3 !='') {var tempu3 = DriveApp.getFilesByName(ichiran3).next();
|
97
|
+
}
|
98
|
+
if(ichiran4 !='') {var tempu4 = DriveApp.getFilesByName(ichiran4).next();
|
99
|
+
}
|
100
|
+
if(ichiran5 !='') {var tempu5 = DriveApp.getFilesByName(ichiran5).next();
|
101
|
+
}
|
102
|
+
if(ichiran6 !='') {var tempu6 = DriveApp.getFilesByName(ichiran6).next();
|
103
|
+
}
|
104
|
+
if(ichiran7 !='') {var tempu7 = DriveApp.getFilesByName(ichiran7).next();
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
|
52
109
|
GmailApp.sendEmail(address, subject, body, {
|
110
|
+
|
53
111
|
cc: '@gmail.com',
|
112
|
+
|
54
|
-
attachments: [tempu]});
|
113
|
+
attachments: [tempu,tempu1,tempu2,tempu3,tempu4,tempu5,tempu6,tempu7]});
|
114
|
+
|
55
115
|
}
|
116
|
+
|
56
117
|
}
|
118
|
+
|
119
|
+
}
|
120
|
+
|
57
121
|
```
|
58
122
|
|
59
123
|
### 試したこと
|
60
124
|
|
61
|
-
|
125
|
+
ifで空白を避ける条件でgetfilesByNameを命令するようにしてみました。
|
62
|
-
どうしてもエラーになってしまいます。
|
63
126
|
|
64
127
|
### 補足情報(FW/ツールのバージョンなど)
|
65
|
-
|
128
|
+
~~var tempu = DriveApp.getFilesByName(ichiran).next()
|
66
129
|
|
67
130
|
これで指示すると動いたのですが、指定したファイルが勝手にpdf変換される事象が発生しております。
|
68
|
-
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?
|
131
|
+
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?~~
|
1
ファイルが勝手にpdf変換される問題について追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -62,5 +62,7 @@
|
|
62
62
|
どうしてもエラーになってしまいます。
|
63
63
|
|
64
64
|
### 補足情報(FW/ツールのバージョンなど)
|
65
|
+
var tempu = DriveApp.getFilesByName(ichiran).next()
|
65
66
|
|
67
|
+
これで指示すると動いたのですが、指定したファイルが勝手にpdf変換される事象が発生しております。
|
66
|
-
こ
|
68
|
+
これはどうやって解決すればよいのでしょうか?GASの仕様でしょうか?
|