1: <?php
2:
3: /**
4: * Jyxo PHP Library
5: *
6: * LICENSE
7: *
8: * This source file is subject to the new BSD license that is bundled
9: * with this package in the file license.txt.
10: * It is also available through the world-wide-web at this URL:
11: * https://github.com/jyxo/php/blob/master/license.txt
12: */
13:
14: /**
15: * Mail attachment created from a string.
16: *
17: * @category Jyxo
18: * @package Jyxo_Mail
19: * @subpackage Email
20: * @copyright Copyright (c) 2005-2011 Jyxo, s.r.o.
21: * @license https://github.com/jyxo/php/blob/master/license.txt
22: * @author Jaroslav HanslĂk
23: */
24: class Jyxo_Mail_Email_Attachment_String extends Jyxo_Mail_Email_Attachment
25: {
26: /**
27: * Type.
28: *
29: * @var string
30: */
31: protected $disposition = Jyxo_Mail_Email_Attachment::DISPOSITION_ATTACHMENT;
32:
33: /**
34: * Creates an attachment.
35: *
36: * @param string $content File contents
37: * @param string $name Attachment name
38: * @param string $mimeType Attachment mime-type
39: * @param string $encoding Source encoding
40: */
41: public function __construct($content, $name, $mimeType = 'application/octet-stream', $encoding = '')
42: {
43: $this->setContent($content);
44: $this->setName($name);
45: $this->setMimeType($mimeType);
46: $this->setEncoding($encoding);
47: }
48:
49: /**
50: * Sets contents encoding.
51: * If none is set, assume no encoding is used.
52: *
53: * @param string $encoding Encoding name
54: * @return Jyxo_Mail_Email_Attachment_String
55: * @throws InvalidArgumentException If an incompatible encoding was provided
56: */
57: public function setEncoding($encoding)
58: {
59: if ((!empty($encoding)) && (!Jyxo_Mail_Encoding::isCompatible($encoding))) {
60: throw new InvalidArgumentException(sprintf('Incompatible encoding %s', $encoding));
61: }
62:
63: $this->encoding = (string) $encoding;
64:
65: return $this;
66: }
67: }
68: