Added feature #15998: Create a new API to send mails based on SwiftMailer to replace...
[Packages/TYPO3.CMS.git] / typo3 / contrib / swiftmailer / classes / Swift / Attachment.php
1 <?php
2
3 /*
4 * This file is part of SwiftMailer.
5 * (c) 2004-2009 Chris Corbyn
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11 //@require 'Swift/Mime/Attachment.php';
12 //@require 'Swift/ByteStream/FileByteStream.php';
13 //@require 'Swift/DependencyContainer.php';
14
15 /**
16 * Attachment class for attaching files to a {@link Swift_Mime_Message}.
17 * @package Swift
18 * @subpackage Mime
19 * @author Chris Corbyn
20 */
21 class Swift_Attachment extends Swift_Mime_Attachment
22 {
23
24 /**
25 * Create a new Attachment.
26 * Details may be optionally provided to the constructor.
27 * @param string|Swift_OutputByteStream $data
28 * @param string $filename
29 * @param string $contentType
30 */
31 public function __construct($data = null, $filename = null,
32 $contentType = null)
33 {
34 call_user_func_array(
35 array($this, 'Swift_Mime_Attachment::__construct'),
36 Swift_DependencyContainer::getInstance()
37 ->createDependenciesFor('mime.attachment')
38 );
39
40 $this->setBody($data);
41 $this->setFilename($filename);
42 if ($contentType)
43 {
44 $this->setContentType($contentType);
45 }
46 }
47
48 /**
49 * Create a new Attachment.
50 * @param string|Swift_OutputByteStream $data
51 * @param string $filename
52 * @param string $contentType
53 * @return Swift_Mime_Attachment
54 */
55 public static function newInstance($data = null, $filename = null,
56 $contentType = null)
57 {
58 return new self($data, $filename, $contentType);
59 }
60
61 /**
62 * Create a new Attachment from a filesystem path.
63 * @param string $path
64 * @param string $contentType optional
65 * @return Swift_Mime_Attachment
66 */
67 public static function fromPath($path, $contentType = null)
68 {
69 return self::newInstance()->setFile(
70 new Swift_ByteStream_FileByteStream($path),
71 $contentType
72 );
73 }
74
75 }