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: /**
12: * A Message (RFC 2822) object.
13: *
14: * @package Swift
15: * @subpackage Mime
16: *
17: * @author Chris Corbyn
18: */
19: interface Swift_Mime_Message extends Swift_Mime_MimeEntity
20: {
21: /**
22: * Generates a valid Message-ID and switches to it.
23: *
24: * @return string
25: */
26: public function generateId();
27:
28: /**
29: * Set the subject of the message.
30: *
31: * @param string $subject
32: */
33: public function setSubject($subject);
34:
35: /**
36: * Get the subject of the message.
37: *
38: * @return string
39: */
40: public function getSubject();
41:
42: /**
43: * Set the origination date of the message as a UNIX timestamp.
44: *
45: * @param int $date
46: */
47: public function setDate($date);
48:
49: /**
50: * Get the origination date of the message as a UNIX timestamp.
51: *
52: * @return int
53: */
54: public function getDate();
55:
56: /**
57: * Set the return-path (bounce-detect) address.
58: *
59: * @param string $address
60: */
61: public function setReturnPath($address);
62:
63: /**
64: * Get the return-path (bounce-detect) address.
65: *
66: * @return string
67: */
68: public function getReturnPath();
69:
70: /**
71: * Set the sender of this message.
72: *
73: * If multiple addresses are present in the From field, this SHOULD be set.
74: *
75: * According to RFC 2822 it is a requirement when there are multiple From
76: * addresses, but Swift itself does not require it directly.
77: *
78: * An associative array (with one element!) can be used to provide a display-
79: * name: i.e. array('email@address' => 'Real Name').
80: *
81: * If the second parameter is provided and the first is a string, then $name
82: * is associated with the address.
83: *
84: * @param mixed $address
85: * @param string $name optional
86: */
87: public function setSender($address, $name = null);
88:
89: /**
90: * Get the sender address for this message.
91: *
92: * This has a higher significance than the From address.
93: *
94: * @return string
95: */
96: public function getSender();
97:
98: /**
99: * Set the From address of this message.
100: *
101: * It is permissible for multiple From addresses to be set using an array.
102: *
103: * If multiple From addresses are used, you SHOULD set the Sender address and
104: * according to RFC 2822, MUST set the sender address.
105: *
106: * An array can be used if display names are to be provided: i.e.
107: * array('email@address.com' => 'Real Name').
108: *
109: * If the second parameter is provided and the first is a string, then $name
110: * is associated with the address.
111: *
112: * @param mixed $addresses
113: * @param string $name optional
114: */
115: public function setFrom($addresses, $name = null);
116:
117: /**
118: * Get the From address(es) of this message.
119: *
120: * This method always returns an associative array where the keys are the
121: * addresses.
122: *
123: * @return string[]
124: */
125: public function getFrom();
126:
127: /**
128: * Set the Reply-To address(es).
129: *
130: * Any replies from the receiver will be sent to this address.
131: *
132: * It is permissible for multiple reply-to addresses to be set using an array.
133: *
134: * This method has the same synopsis as {@link setFrom()} and {@link setTo()}.
135: *
136: * If the second parameter is provided and the first is a string, then $name
137: * is associated with the address.
138: *
139: * @param mixed $addresses
140: * @param string $name optional
141: */
142: public function setReplyTo($addresses, $name = null);
143:
144: /**
145: * Get the Reply-To addresses for this message.
146: *
147: * This method always returns an associative array where the keys provide the
148: * email addresses.
149: *
150: * @return string[]
151: */
152: public function getReplyTo();
153:
154: /**
155: * Set the To address(es).
156: *
157: * Recipients set in this field will receive a copy of this message.
158: *
159: * This method has the same synopsis as {@link setFrom()} and {@link setCc()}.
160: *
161: * If the second parameter is provided and the first is a string, then $name
162: * is associated with the address.
163: *
164: * @param mixed $addresses
165: * @param string $name optional
166: */
167: public function setTo($addresses, $name = null);
168:
169: /**
170: * Get the To addresses for this message.
171: *
172: * This method always returns an associative array, whereby the keys provide
173: * the actual email addresses.
174: *
175: * @return string[]
176: */
177: public function getTo();
178:
179: /**
180: * Set the Cc address(es).
181: *
182: * Recipients set in this field will receive a 'carbon-copy' of this message.
183: *
184: * This method has the same synopsis as {@link setFrom()} and {@link setTo()}.
185: *
186: * @param mixed $addresses
187: * @param string $name optional
188: */
189: public function setCc($addresses, $name = null);
190:
191: /**
192: * Get the Cc addresses for this message.
193: *
194: * This method always returns an associative array, whereby the keys provide
195: * the actual email addresses.
196: *
197: * @return string[]
198: */
199: public function getCc();
200:
201: /**
202: * Set the Bcc address(es).
203: *
204: * Recipients set in this field will receive a 'blind-carbon-copy' of this
205: * message.
206: *
207: * In other words, they will get the message, but any other recipients of the
208: * message will have no such knowledge of their receipt of it.
209: *
210: * This method has the same synopsis as {@link setFrom()} and {@link setTo()}.
211: *
212: * @param mixed $addresses
213: * @param string $name optional
214: */
215: public function setBcc($addresses, $name = null);
216:
217: /**
218: * Get the Bcc addresses for this message.
219: *
220: * This method always returns an associative array, whereby the keys provide
221: * the actual email addresses.
222: *
223: * @return string[]
224: */
225: public function getBcc();
226: }
227: