99
1010use Nette ;
1111use Nette \Utils \Strings ;
12- use function addcslashes , array_map , array_reverse , basename , date , explode , finfo_buffer , finfo_open , implode , is_numeric , ltrim , php_uname , preg_match , preg_replace , rtrim , str_replace , strcasecmp , stripslashes , strlen , substr , substr_replace , trim , urldecode ;
12+ use function addcslashes , array_map , array_reverse , basename , date , explode , finfo_buffer , finfo_open , implode , is_array , is_numeric , is_string , ltrim , php_uname , preg_match , preg_replace , rtrim , str_replace , strcasecmp , stripslashes , strlen , substr , substr_replace , trim , urldecode ;
1313
1414
1515/**
@@ -75,7 +75,8 @@ public function setFrom(string $email, ?string $name = null): static
7575 */
7676 public function getFrom (): ?array
7777 {
78- return $ this ->getHeader ('From ' );
78+ $ value = $ this ->getHeader ('From ' );
79+ return is_array ($ value ) ? $ value : null ;
7980 }
8081
8182
@@ -98,7 +99,8 @@ public function setSubject(string $subject): static
9899
99100 public function getSubject (): ?string
100101 {
101- return $ this ->getHeader ('Subject ' );
102+ $ value = $ this ->getHeader ('Subject ' );
103+ return is_string ($ value ) ? $ value : null ;
102104 }
103105
104106
@@ -160,7 +162,8 @@ public function setReturnPath(string $email): static
160162
161163 public function getReturnPath (): ?string
162164 {
163- return $ this ->getHeader ('Return-Path ' );
165+ $ value = $ this ->getHeader ('Return-Path ' );
166+ return is_string ($ value ) ? $ value : null ;
164167 }
165168
166169
@@ -202,7 +205,8 @@ public function setHtmlBody(string $html, ?string $basePath = null): static
202205 foreach (array_reverse ($ matches ) as $ m ) {
203206 $ file = rtrim ($ basePath , '/ \\' ) . '/ ' . (isset ($ m [4 ]) ? $ m [4 ][0 ] : urldecode ($ m [3 ][0 ]));
204207 if (!isset ($ cids [$ file ])) {
205- $ cids [$ file ] = substr ($ this ->addEmbeddedFile ($ file )->getHeader ('Content-ID ' ), 1 , -1 );
208+ $ contentId = $ this ->addEmbeddedFile ($ file )->getHeader ('Content-ID ' );
209+ $ cids [$ file ] = is_string ($ contentId ) ? substr ($ contentId , 1 , -1 ) : '' ;
206210 }
207211
208212 $ html = substr_replace (
@@ -293,7 +297,9 @@ private function createAttachment(
293297 }
294298
295299 if (!$ contentType ) {
296- $ contentType = finfo_buffer (finfo_open (FILEINFO_MIME_TYPE ), $ content );
300+ $ finfo = finfo_open (FILEINFO_MIME_TYPE );
301+ $ contentType = $ finfo ? finfo_buffer ($ finfo , $ content ) : false ;
302+ $ contentType = $ contentType ?: 'application/octet-stream ' ;
297303 }
298304
299305 if (!strcasecmp ($ contentType , 'message/rfc822 ' )) { // not allowed for attached files
0 commit comments