validate(); } catch (ORM_Validation_Exception $e) { // Translate ORM validation errors into form error messages foreach ($e->validation->errors() as $key => $error) { $form->edit_item->inputs[$key]->add_error($error, 1); } $valid = false; } if ($valid) { $v = new View("ecard_email.html"); $v->item = $item; $v->subject = module::get_var("ecard", "subject"); $to_name = $form->send_ecard->to_name->value; $from_name = $form->send_ecard->from_name->value; $bcc = module::get_var("ecard", "bcc"); if($form->send_ecard->send_to_self->checked == true) { $cc = $form->send_ecard->inputs["from_email"]->value; } $v->message = t(module::get_var("ecard", "message"), array("toname" => $to_name, "fromname" => $from_name)); $v->custom_message = $form->send_ecard->text->value; $v->image = $item->name; $to = $form->send_ecard->inputs["to_email"]->value; $from = $form->send_ecard->inputs["from_email"]->value; $headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject")); require_once(MODPATH. "ecard/lib/mime.php"); $mime = new Mail_mime("\n"); $mime->setHTMLBody($v->render()); $mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name); $body = $mime->get(array('html_charset' => 'UTF-8', 'text_charset' => 'UTF-8','text_encoding' => '8bit','head_charset' => 'UTF-8')); self::_notify($headers['to'], $headers['from'], $headers['subject'], $item, $body, $mime->headers(), $bcc, $cc); message::success("eCard successfully sent"); json::reply(array("result" => "success")); } else { json::reply(array("result" => "error", "html" => (string) $form)); } } /** * Present a form for sending a new ecard. */ public function form_send($item_id) { $item = ORM::factory("item", $item_id); access::required("view", $item); if (!ecard::can_send_ecard()) { access::forbidden(); } print ecard::prefill_send_form(ecard::get_send_form($item)); } private static function _notify($to, $from, $subject, $item, $text, $headers, $bcc, $cc) { $sendmail = Sendmail::factory(); $sendmail ->to($to) ->from($from) ->subject($subject); if(isset($bcc)) { $sendmail->header("bcc",$bcc); } if(isset($cc)) { $sendmail->header("cc",$cc); } foreach($headers as $key => $value) { $sendmail->header($key,$value); } $sendmail ->message($text) ->send(); return; } }