1: <?php
2:
3: namespace Charcoal\Email;
4:
5: /**
6: *
7: */
8: interface EmailInterface
9: {
10: /**
11: * Set the email's data.
12: *
13: * @param array $data The data to set.
14: * @return Email Chainable
15: */
16: public function setData(array $data);
17:
18: /**
19: * Set the campaign ID.
20: *
21: * @param string $campaign The campaign identifier.
22: * @return EmailInterface Chainable
23: */
24: public function setCampaign($campaign);
25:
26: /**
27: * Get the campaign identifier.
28: *
29: * @return string
30: */
31: public function campaign();
32:
33: /**
34: * Set the recipient email address(es).
35: *
36: * @param string|array $email The recipient email address(es).
37: * @return EmailInterface Chainable
38: */
39: public function setTo($email);
40:
41: /**
42: * Add a recipient email address.
43: *
44: * @param mixed $email The recipient email address to add.
45: * @return EmailInterface Chainable
46: */
47: public function addTo($email);
48:
49: /**
50: * Get the recipient's email address.
51: *
52: * @return string[]
53: */
54: public function to();
55:
56: /**
57: * Set the carbon copy (CC) recipient email address(es).
58: *
59: * @param string|array $email The CC recipient email address(es).
60: * @return EmailInterface Chainable
61: */
62: public function setCc($email);
63:
64: /**
65: * Add a CC recipient email address.
66: *
67: * @param mixed $email The CC recipient email address to add.
68: * @return EmailInterface Chainable
69: */
70: public function addCc($email);
71:
72: /**
73: * Get the CC recipient's email address.
74: *
75: * @return string[]
76: */
77: public function cc();
78:
79: /**
80: * Set the blind carbon copy (BCC) recipient email address(es).
81: *
82: * @param string|array $email The BCC recipient email address(es).
83: * @return EmailInterface Chainable
84: */
85: public function setBcc($email);
86:
87: /**
88: * Add a BCC recipient email address.
89: *
90: * @param mixed $email The BCC recipient email address to add.
91: * @return EmailInterface Chainable
92: */
93: public function addBcc($email);
94:
95: /**
96: * Get the BCC recipient's email address.
97: *
98: * @return string[]
99: */
100: public function bcc();
101:
102: /**
103: * Set the sender's email address.
104: *
105: * @param string|array $email An email address.
106: * @return EmailInterface Chainable
107: */
108: public function setFrom($email);
109:
110: /**
111: * Get the sender's email address.
112: *
113: * @return string
114: */
115: public function from();
116:
117: /**
118: * Set email address to reply to the message.
119: *
120: * @param mixed $email The sender's "Reply-To" email address.
121: * @return EmailInterface Chainable
122: */
123: public function setReplyTo($email);
124:
125: /**
126: * Get email address to reply to the message.
127: *
128: * @return string
129: */
130: public function replyTo();
131:
132: /**
133: * Set the email subject.
134: *
135: * @param string $subject The email subject.
136: * @return EmailInterface Chainable
137: */
138: public function setSubject($subject);
139:
140: /**
141: * Get the email subject.
142: *
143: * @return string The emails' subject.
144: */
145: public function subject();
146:
147: /**
148: * Set the email's HTML message body.
149: *
150: * @param string $body The HTML message body.
151: * @return EmailInterface Chainable
152: */
153: public function setMsgHtml($body);
154:
155: /**
156: * Get the email's HTML message body.
157: *
158: * @return string
159: */
160: public function msgHtml();
161:
162: /**
163: * Set the email's plain-text message body.
164: *
165: * @param string $body The message's text body.
166: * @return EmailInterface Chainable
167: */
168: public function setMsgTxt($body);
169:
170: /**
171: * Get the email's plain-text message body.
172: *
173: * @return string
174: */
175: public function msgTxt();
176:
177: /**
178: * Set the email's attachments.
179: *
180: * @param array $attachments The file attachments.
181: * @return EmailInterface Chainable
182: */
183: public function setAttachments(array $attachments);
184:
185: /**
186: * Add an attachment to the email.
187: *
188: * @param mixed $attachment A single file attachment.
189: * @return EmailInterface Chainable
190: */
191: public function addAttachment($attachment);
192:
193: /**
194: * Get the email's attachments.
195: *
196: * @return array
197: */
198: public function attachments();
199:
200: /**
201: * Enable or disable logging for this particular email.
202: *
203: * @param boolean $log The log flag.
204: * @return EmailInterface Chainable
205: */
206: public function setLog($log);
207:
208: /**
209: * Determine if logging is enabled for this particular email.
210: *
211: * @return boolean
212: */
213: public function log();
214:
215: /**
216: * Enable or disable tracking for this particular email.
217: *
218: * @param boolean $track The track flag.
219: * @return EmailInterface Chainable
220: */
221: public function setTrack($track);
222:
223: /**
224: * Determine if tracking is enabled for this particular email.
225: *
226: * @return boolean
227: */
228: public function track();
229:
230: /**
231: * Send the email to all recipients.
232: *
233: * @return boolean Success / Failure.
234: */
235: public function send();
236:
237: /**
238: * Enqueue the email for each recipient.
239: *
240: * @param mixed $ts A date/time to initiate the queue processing.
241: * @return boolean Success / Failure.
242: */
243: public function queue($ts = null);
244: }
245: