mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge pull request #10994 from watermark/cakeemail_mimetype
Address CakeEmail regression when data is defined with no mimetype
This commit is contained in:
commit
895f6cac2a
2 changed files with 36 additions and 1 deletions
|
@ -1084,7 +1084,7 @@ class CakeEmail {
|
|||
$name = basename($fileInfo['file']);
|
||||
}
|
||||
}
|
||||
if (!isset($fileInfo['mimetype']) && function_exists('mime_content_type')) {
|
||||
if (!isset($fileInfo['mimetype']) && isset($fileInfo['file']) && function_exists('mime_content_type')) {
|
||||
$fileInfo['mimetype'] = mime_content_type($fileInfo['file']);
|
||||
}
|
||||
if (!isset($fileInfo['mimetype'])) {
|
||||
|
|
|
@ -1140,6 +1140,41 @@ class CakeEmailTest extends CakeTestCase {
|
|||
$this->assertContains($expected, $result['message']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test send() with no template and data string attachment, no mimetype
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSendNoTemplateWithDataStringAttachmentNoMime() {
|
||||
$this->CakeEmail->transport('debug');
|
||||
$this->CakeEmail->from('cake@cakephp.org');
|
||||
$this->CakeEmail->to('cake@cakephp.org');
|
||||
$this->CakeEmail->subject('My title');
|
||||
$this->CakeEmail->emailFormat('text');
|
||||
$data = file_get_contents(CAKE . 'Console/Templates/skel/webroot/img/cake.icon.png');
|
||||
$this->CakeEmail->attachments(array('cake.icon.png' => array(
|
||||
'data' => $data
|
||||
)));
|
||||
$result = $this->CakeEmail->send('Hello');
|
||||
|
||||
$boundary = $this->CakeEmail->getBoundary();
|
||||
$this->assertContains('Content-Type: multipart/mixed; boundary="' . $boundary . '"', $result['headers']);
|
||||
$expected = "--$boundary\r\n" .
|
||||
"Content-Type: text/plain; charset=UTF-8\r\n" .
|
||||
"Content-Transfer-Encoding: 8bit\r\n" .
|
||||
"\r\n" .
|
||||
"Hello" .
|
||||
"\r\n" .
|
||||
"\r\n" .
|
||||
"\r\n" .
|
||||
"--$boundary\r\n" .
|
||||
"Content-Type: application/octet-stream\r\n" .
|
||||
"Content-Transfer-Encoding: base64\r\n" .
|
||||
"Content-Disposition: attachment; filename=\"cake.icon.png\"\r\n\r\n";
|
||||
$expected .= chunk_split(base64_encode($data), 76, "\r\n");
|
||||
$this->assertContains($expected, $result['message']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test send() with no template as both
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue