/** * Send an email * * @param string $email Address to send to * @param string $subject Message subject * @param mixed $contents Message to send * @param array $from Who the message is from * @param array $replyto Reply to information * @param array $additionalHeaders More headers to apply * @return boolean */ public static function sendEmail($email, $subject, $contents, $from, $replyto = '', $additionalHeaders = null) { if (!$from) { return false; } $message = new Message(); $message->setSubject($subject)->addFrom($from['email'], $from['name'])->addTo($email); if ($replyto) { $message->addReplyTo($replyto, $from['name']); } else { $message->addReplyTo($from['email'], $from['name']); } if (is_array($additionalHeaders)) { // The xheaders array has name and value pairs foreach ($additionalHeaders as $header) { $message->addHeader($header['name'], $header['value']); } } if (is_array($contents)) { if (isset($contents['attachments'])) { if (!is_array($contents['attachments'])) { $contents['attachments'] = array($contents['attachments']); } foreach ($contents['attachments'] as $path) { if (preg_match("/\\.(bmp|gif|jpg|jpe|jpeg|png)\$/i", $path)) { $file = basename($path); $size = getimagesize($path); $width = $size[0] > 650 ? 650 : $size[0]; $contents['multipart'] = preg_replace('/<a class="img" data\\-filename="' . str_replace('.', '\\.', $file) . '" href="(.*?)"\\>(.*?)<\\/a>/i', '<img width="' . $width . '" src="' . $message->getEmbed($path) . '" alt="" />', $contents['multipart']); } else { $message->addAttachment($path); } } } $message->addPart($contents['plaintext'], 'text/plain')->addPart($contents['multipart'], 'text/html'); } else { $message->setBody($contents); } if ($message->send()) { return true; } return false; }