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

回答編集履歴

3

加筆修正

2018/03/27 03:41

投稿

退会済みユーザー
answer CHANGED
@@ -47,4 +47,23 @@
47
47
  ```
48
48
  が正しいかわからないけど、添付したいファイルを一つずつattach()していけばいいんじゃないかなって、直感で思った次第。
49
49
  attach()が一度に1つしかファイルを受け付けないとしても、
50
- 複数のファイルを順次与えていけば解決しそうに見えたので。
50
+ 複数のファイルを順次与えていけば解決しそうに見えたので。
51
+
52
+ ---
53
+
54
+ もう1点。
55
+ ```
56
+ $filepath1 = "/".$username."/".$temp1;
57
+ $filepath2 = "/".$username."/".$temp2;
58
+ $filepath3 = "/".$username."/".$temp3;
59
+ $filepath4 = "/".$username."/".$temp4;
60
+ $filepath5 = "/".$username."/".$temp5;
61
+ $filepath6 = "/".$username."/".$temp6;
62
+
63
+ $array = [$filepath1,$filepath2,$filepath3,$filepath4,$filepath5,$filepath6];
64
+ ```
65
+ この箇所でファイルの存在を検証せず必ず6つファイルを与えようとしているけど、
66
+ ちゃんと**ファイルがあるか**確認できてますか?
67
+ `var_dump($array);`とかやって絶対パスが存在するかどうか、
68
+ ファイルにアクセス可能かどうか(fopen()/fclose()してみるとか)で
69
+ 確認できると思います。

2

typo修正

2018/03/27 03:41

投稿

退会済みユーザー
answer CHANGED
@@ -45,4 +45,6 @@
45
45
  }
46
46
  }
47
47
  ```
48
- が正しいかわからないけど、添付したいファイルを一つずつattache()していけばいいんじゃないかなって、直感で思った次第。
48
+ が正しいかわからないけど、添付したいファイルを一つずつattach()していけばいいんじゃないかなって、直感で思った次第。
49
+ attach()が一度に1つしかファイルを受け付けないとしても、
50
+ 複数のファイルを順次与えていけば解決しそうに見えたので。

1

加筆修正

2018/03/27 01:56

投稿

退会済みユーザー
answer CHANGED
@@ -2,4 +2,47 @@
2
2
  そもそも複数ファイルを添付できる仕様を満たそうとしているのかさえ怪しいのですが。
3
3
 
4
4
  `is_array()`で引数が配列かどうか判定し、
5
- 配列で渡された場合にforeach()ループで順次`$message->attach()`していけばいいのかも?
5
+ 配列で渡された場合にforeach()ループで順次`$message->attach()`していけばいいのかも?
6
+
7
+ ---
8
+
9
+ ```
10
+ $array = [$filepath1,$filepath2,$filepath3,$filepath4,$filepath5,$filepath6];
11
+
12
+ $this->sendMailTo_w($filepath1);
13
+ ```
14
+ `$array` どこいった?
15
+ 仮に引数が`$this->sendMailTo_w($array);`だったと仮定して、
16
+ `private function sendMailTo_w($pdf)`を吟味すると、
17
+
18
+ ```
19
+ $email = [
20
+ 'to' => $to,
21
+ 'cc' => $cc,
22
+ 'bcc' => $bcc,
23
+ 'from_address' => $fromAddress,
24
+ 'from_name' => $fromName,
25
+ 'subject' => $subject,
26
+ 'attach' => $pdf
27
+ ];
28
+ ```
29
+ としてattacheに与えているように見えて、その先無名関数内で、
30
+ ```
31
+ if (array_key_exists('attach', $email) && $email['attach']) {
32
+ $message->attach($email['attach']);
33
+ }
34
+ ```
35
+ `&& $email['attach']`っていう参照の仕方はちょっと変。
36
+ ```
37
+ if (array_key_exists('attach', $email)) {
38
+ if (is_array($email['attach'])) {
39
+ foreach ($email['attach'] as $file) {
40
+ $message->attach($file);
41
+ }
42
+ }
43
+ else {
44
+ $message->attach($email['attach']);
45
+ }
46
+ }
47
+ ```
48
+ が正しいかわからないけど、添付したいファイルを一つずつattache()していけばいいんじゃないかなって、直感で思った次第。