senderEmail = $senderEmail; } /** * Sends one or more iTip messages through email. * * @param string $originator Originator Email * @param array $recipients Array of email addresses * @param VObject\Component $vObject * @param string $principal Principal Url of the originator * @return void */ public function sendMessage($originator, array $recipients, VObject\Component $vObject, $principal) { foreach($recipients as $recipient) { $to = $recipient; $replyTo = $originator; $subject = 'SabreDAV iTIP message'; switch(strtoupper($vObject->METHOD)) { case 'REPLY' : $subject = 'Response for: ' . $vObject->VEVENT->SUMMARY; break; case 'REQUEST' : $subject = 'Invitation for: ' .$vObject->VEVENT->SUMMARY; break; case 'CANCEL' : $subject = 'Cancelled event: ' . $vObject->VEVENT->SUMMARY; break; } $headers = array(); $headers[] = 'Reply-To: ' . $replyTo; $headers[] = 'From: ' . $this->senderEmail; $headers[] = 'Content-Type: text/calendar; method=' . (string)$vObject->method . '; charset=utf-8'; if (DAV\Server::$exposeVersion) { $headers[] = 'X-Sabre-Version: ' . DAV\Version::VERSION . '-' . DAV\Version::STABILITY; } $vcalBody = $vObject->serialize(); $this->mail($to, $subject, $vcalBody, $headers); } } // @codeCoverageIgnoreStart // This is deemed untestable in a reasonable manner /** * This function is reponsible for sending the actual email. * * @param string $to Recipient email address * @param string $subject Subject of the email * @param string $body iCalendar body * @param array $headers List of headers * @return void */ protected function mail($to, $subject, $body, array $headers) { mail($to, $subject, $body, implode("\r\n", $headers)); } // @codeCoverageIgnoreEnd }