Esempio n. 1
0
 /**
  * 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;
 }