@@ 50-103 (lines=54) @@ | ||
47 | } |
|
48 | } |
|
49 | ||
50 | public static function makeEnvelope(){ |
|
51 | $uid = md5(uniqid(time())); |
|
52 | $head = $body = []; |
|
53 | ||
54 | if ($this->from) $head[] = 'From: ' . $this->from; |
|
55 | if ($this->replyTo) $head[] = 'Reply-To: ' . $this->replyTo; |
|
56 | ||
57 | $head[] = 'MIME-Version: 1.0'; |
|
58 | $head[] = "Content-Type: multipart/mixed; boundary=\"".$uid."\""; |
|
59 | ||
60 | $body[] = "--$uid"; |
|
61 | $body[] = "Content-type: text/html; charset=UTF-8"; |
|
62 | $body[] = "Content-Transfer-Encoding: quoted-printable"; |
|
63 | $body[] = ''; |
|
64 | $body[] = quoted_printable_encode($this->message); |
|
65 | $body[] = ''; |
|
66 | ||
67 | ||
68 | foreach ($this->attachments as $file) { |
|
69 | if (is_string($file)) { |
|
70 | $name = basename($file); |
|
71 | $data = file_get_contents($file); |
|
72 | } else { |
|
73 | $name = $file['name']; |
|
74 | $data = $file['content']; |
|
75 | } |
|
76 | ||
77 | $body[] = "--$uid"; |
|
78 | $body[] = "Content-type: application/octet-stream; name=\"".$name."\""; |
|
79 | $body[] = "Content-Transfer-Encoding: base64"; |
|
80 | $body[] = "Content-Disposition: attachment; filename=\"".$name."\""; |
|
81 | $body[] = ''; |
|
82 | $body[] = chunk_split(base64_encode($data)); |
|
83 | $body[] = ''; |
|
84 | } |
|
85 | ||
86 | $body[] = "--$uid--"; |
|
87 | ||
88 | $success = true; |
|
89 | $head = implode("\r\n",$head); |
|
90 | $body = implode("\r\n",$body); |
|
91 | ||
92 | foreach ($this->recipients as $to) { |
|
93 | $current_success = mail( |
|
94 | $to, |
|
95 | $this->subject, |
|
96 | $body, |
|
97 | $head |
|
98 | ); |
|
99 | \Event::trigger('core.email.send', $to, $this->from, $this->subject, $body, $success); |
|
100 | $success = $success && $current_success; |
|
101 | } |
|
102 | return $success; |
|
103 | } |
|
104 | ||
105 | protected static function send(array $options){ |
|
106 | $mail = static::agent(); |
@@ 48-101 (lines=54) @@ | ||
45 | $this->attachments[] = $file; |
|
46 | } |
|
47 | ||
48 | public function send(){ |
|
49 | $uid = md5(uniqid(time())); |
|
50 | $head = $body = []; |
|
51 | ||
52 | if($this->from) $head[] = 'From: ' . $this->from; |
|
53 | if($this->replyTo) $head[] = 'Reply-To: ' . $this->replyTo; |
|
54 | ||
55 | $head[] = 'MIME-Version: 1.0'; |
|
56 | $head[] = "Content-Type: multipart/mixed; boundary=\"".$uid."\""; |
|
57 | ||
58 | $body[] = "--$uid"; |
|
59 | $body[] = "Content-type: text/html; charset=UTF-8"; |
|
60 | $body[] = "Content-Transfer-Encoding: quoted-printable"; |
|
61 | $body[] = ''; |
|
62 | $body[] = quoted_printable_encode($this->message); |
|
63 | $body[] = ''; |
|
64 | ||
65 | ||
66 | foreach ($this->attachments as $file) { |
|
67 | if (is_string($file)) { |
|
68 | $name = basename($file); |
|
69 | $data = file_get_contents($file); |
|
70 | } else { |
|
71 | $name = $file['name']; |
|
72 | $data = $file['content']; |
|
73 | } |
|
74 | ||
75 | $body[] = "--$uid"; |
|
76 | $body[] = "Content-type: application/octet-stream; name=\"".$name."\""; |
|
77 | $body[] = "Content-Transfer-Encoding: base64"; |
|
78 | $body[] = "Content-Disposition: attachment; filename=\"".$name."\""; |
|
79 | $body[] = ''; |
|
80 | $body[] = chunk_split(base64_encode($data)); |
|
81 | $body[] = ''; |
|
82 | } |
|
83 | ||
84 | $body[] = "--$uid--"; |
|
85 | ||
86 | $success = true; |
|
87 | $head = implode("\r\n",$head); |
|
88 | $body = implode("\r\n",$body); |
|
89 | ||
90 | foreach ($this->recipients as $to) { |
|
91 | $current_success = mail( |
|
92 | $to, |
|
93 | $this->subject, |
|
94 | $body, |
|
95 | $head |
|
96 | ); |
|
97 | \Event::trigger('core.email.send',$to,$this->from,$this->subject,$body,$success); |
|
98 | $success = $success && $current_success; |
|
99 | } |
|
100 | return $success; |
|
101 | } |
|
102 | ||
103 | } |
|
104 |