model = array(); } /** * adds addresses as recipients * @param string $address * @param string $name optional * @return $this */ public function addTo($address, $name = null) { if (!isset($this->model['recipients'])) { $this->model['recipients'] = array(); } if(isset($name)) { $address = array('address'=>array('email'=>$address, 'name'=>$name)); } else { $address = array('address'=>array('email'=>$address)); } array_push($this->model['recipients'], $address); return $this; } /** * explicitly sets a list of addresses * @param array $addresses * @return $this */ public function setTos(array $addresses) { $this->model['recipients'] = $addresses; return $this; } /** * sets the from address * @param string $address * @return $this */ public function setFrom($address) { $this->model['from'] = array('email' => $address); return $this; } /** * Sets the name for the from address * @param string $name * @return $this * @throws \Exception */ public function setFromName($name) { if(!isset($this->model['from'])){ throw new \Exception('Must set \'From\' prior to setting \'From Name\'.'); } $this->model['from']['name'] = $name; return $this; } /** * sets the reply to field * @param string $address * @return $this */ public function setReplyTo ($address) { $this->model['replyTo'] = $address; return $this; } /** * throws an error because bcc fields are not yet implemented. * @throws \Exception * @param string $address * @return $this */ public function addBcc($address) { throw new \Exception('Adding bcc recipients is not yet supported, try adding them as a \'to\' address'); } /** * sets the subject header * @param string $subject * @return $this */ public function setSubject($subject) { $this->model['subject'] = $subject; return $this; } /** * sets the text body * @param string $text * @return $this */ public function setText($text) { $this->model['text'] = $text; return $this; } /** * sets the html body * @param string $html * @return $this */ public function setHtml($html) { $this->model['html'] = $html; return $this; } /** * Throws an exception since adding categories is not yet supported * @param string $category * @throws \Exception */ public function addCategory($category) { throw new \Exception('Adding categories is not yet supported'); } /** * Throws an exception since adding attachments is not yet supported * @throws \Exception * @param mixed $attachment */ public function addAttachment($attachment) { throw new \Exception('Adding attachments is not yet supported'); } /** * Adds transmission level substitution data * @param string $name * @param mixed $values * @return $this */ public function addSubstitution($name, $values) { if (!isset($this->model['substitutionData'])) { $this->model['substitutionData'] = array(); } $this->model['substitutionData'][$name] = $values; return $this; } /** * Adds transmission level substitution data * @param string $name * @param mixed $values */ public function addSection($name, $values) { $this->addSubstitution($name, $values); } /** * Throws an exception because arguments for third party systems is not supported * @throws \Exception * @param mixed $value */ public function addUniqueArg($key, $value) { throw new \Exception('Adding Unique Arguments is not yet supported'); } /** * Throws an exception because arguments for third party systems is not supported * @throws \Exception * @param mixed $values */ public function setUniqueArgs(array $values) { throw new \Exception('Setting Unique Arguments is not yet supported'); } /** * Adds custom headers to the email header * @param string $name * @param string $value */ public function addHeader($name, $value) { if (!isset($this->model['customHeaders'])) { $this->model['customHeaders'] = array(); } $this->model['customHeaders'][$name] = $value; } /** * converts this object to a configuration for a SparkPost transmission * @return array */ public function toSparkPostTransmission() { return $this->model; } } ?>