Permalink
Browse files

Merge branch '1.3' of github.com:cakephp/cakephp1x into 1.3

  • Loading branch information...
2 parents 3503872 + 1b8165d commit 558a9db64298fedffb0fb8b8fa54d793666152ba @markstory markstory committed Apr 2, 2010
@@ -556,15 +556,15 @@ function _createHeader() {
if ($this->delivery == 'smtp') {
$headers['Subject'] = $this->_encode($this->subject);
}
-
+
if ($this->messageId !== false) {
if ($this->messageId === true) {
$headers['Message-ID'] = '<' . String::UUID() . '@' . env('HTTP_HOST') . '>';
} else {
- $headers['Message-ID'] = $this->messageId;
+ $headers['Message-ID'] = $this->messageId;
}
}
-
+
$headers['X-Mailer'] = $this->xMailer;
if (!empty($this->headers)) {
@@ -624,14 +624,17 @@ function _formatMessage($message) {
*/
function _attachFiles() {
$files = array();
- foreach ($this->attachments as $attachment) {
+ foreach ($this->attachments as $filename => $attachment) {
$file = $this->_findFiles($attachment);
if (!empty($file)) {
- $files[] = $file;
+ if (is_int($filename)) {
+ $filename = basename($file);
+ }
+ $files[$filename] = $file;
}
}
- foreach ($files as $file) {
+ foreach ($files as $filename => $file) {
$handle = fopen($file, 'rb');
$data = fread($handle, filesize($file));
$data = chunk_split(base64_encode($data)) ;
@@ -640,7 +643,7 @@ function _attachFiles() {
$this->__message[] = '--' . $this->__boundary;
$this->__message[] = 'Content-Type: application/octet-stream';
$this->__message[] = 'Content-Transfer-Encoding: base64';
- $this->__message[] = 'Content-Disposition: attachment; filename="' . basename($file) . '"';
+ $this->__message[] = 'Content-Disposition: attachment; filename="' . basename($filename) . '"';
$this->__message[] = '';
$this->__message[] = $data;
$this->__message[] = '';
@@ -780,6 +780,32 @@ function testMultibyte() {
* @return void
* @access public
*/
+ function testSendWithAttachments() {
+ $this->Controller->EmailTest->to = 'postmaster@localhost';
+ $this->Controller->EmailTest->from = 'noreply@example.com';
+ $this->Controller->EmailTest->subject = 'Attachment Test';
+ $this->Controller->EmailTest->replyTo = 'noreply@example.com';
+ $this->Controller->EmailTest->template = null;
+ $this->Controller->EmailTest->delivery = 'debug';
+ $this->Controller->EmailTest->attachments = array(
+ __FILE__,
+ 'some-name.php' => __FILE__
+ );
+ $body = '<p>This is the body of the message</p>';
+
+ $this->Controller->EmailTest->sendAs = 'text';
+ $this->assertTrue($this->Controller->EmailTest->send($body));
+ $msg = $this->Controller->Session->read('Message.email.message');
+ $this->assertPattern('/' . preg_quote('Content-Disposition: attachment; filename="email.test.php"') . '/', $msg);
+ $this->assertPattern('/' . preg_quote('Content-Disposition: attachment; filename="some-name.php"') . '/', $msg);
+ }
+
+/**
+ * testSendAsIsNotIgnoredIfAttachmentsPresent method
+ *
+ * @return void
+ * @access public
+ */
function testSendAsIsNotIgnoredIfAttachmentsPresent() {
$this->Controller->EmailTest->to = 'postmaster@localhost';
$this->Controller->EmailTest->from = 'noreply@example.com';
@@ -812,7 +838,7 @@ function testSendAsIsNotIgnoredIfAttachmentsPresent() {
}
/**
- * undocumented function
+ * testNoDoubleNewlinesInHeaders function
*
* @return void
* @access public

0 comments on commit 558a9db

Please sign in to comment.