$element->setAttribute('height', '1');
$html = $doc->getElementsByTagName('html');
- $html->item(0)->appendChild($element);
+ if ($html->length) {
+ $html->item(0)->appendChild($element);
+ }
$this->plaintext = str_replace("{unsubscribe_link}", $unsubscribe, $this->plaintext);
}
return;
}
-
+ /**
+ *
+ * Usage:
+ * $this->rcpts = array('sales@roojs.com');
+ * // or
+ * $this->rcpts = "Tester <sales@roojs.com>";
+ *
+ *
+ * // then send it..
+ * $x = DB_DataObject::factory('core_enum');
+ * $x->get('name', 'NAME OF TEMPLATE');
+ * $x->send(array(
+ * 'rcpts' => "Tester <sales@roojs.com>",
+ * 'page' => $this
+ * 'link' => 'http://......'
+ );
+ * // on the template use {link:h} to render the link
+ *
+ *
+ */
function send($obj, $force = true, $send = true)
{
$contents = (array)$obj;
-
+
if(empty($this->id)){
$this->get('name', $contents['template']);
}
if(empty($this->id)){
- return PEAR::raiseError("template [{$contents['template']}]has not been set");
+ $p = new PEAR();
+ return $p->raiseError("template [{$contents['template']}] has not been set");
}
if(empty($contents['subject'])){
$contents['subject'] = $this->subject;
}
+ if(!empty($contents['rcpts']) && is_array($contents['rcpts'])){
+ $contents['rcpts'] = implode(',', $contents['rcpts']);
+ }
+
$ui = posix_getpwuid(posix_geteuid());
$cachePath = session_save_path() . '/email-cache-' . $ui['name'] . '/mail/' . $this->tableName() . '-' . $this->id . '.txt';
require_once 'Pman/Core/Mailer.php';
$templateDir = session_save_path() . '/email-cache-' . $ui['name'] ;
+ //print_r($this);
+
- $r = new Pman_Core_Mailer(array(
+ $cfg = array(
'template'=> $this->tableName() . '-' . $this->id,
'templateDir' => $templateDir,
'page' => $this,
'contents' => $contents
- ));
+ );
+ if (isset($contents['rcpts'])) {
+ $cfg['rcpts'] = $contents['rcpts'];
+ }
+
+ $r = new Pman_Core_Mailer($cfg);
$imageCache = session_save_path() . '/email-cache-' . $ui['name'] . '/mail/' . $this->tableName() . '-' . $this->id . '-images.txt';
}
$ret = $r->toData();
- print_r($ret);exit;
+
if(!$send){
return $ret;
}
- return $r->send($ret);
+ return $r->send();
}
function cachedMailWithOutImages($force = false, $replace_links = true)
fwrite($fh, implode("\n", array(
"From: {if:t.messageFrom}{t.messageFrom:h}{else:}{t.messageFrom():h}{end:}",
- "To: {if:t.person}{t.person.getEmailFrom():h}{else:}{foreach:rcpts,v}{v:h},{end:}{end:}",
+ "To: {if:t.person}{t.person.getEmailFrom():h}{else:}{rcpts:h}{end:}",
"Subject: {t.subject} ",
"X-Message-ID: {t.id} ",
- "{if:t.replyTo}Reply-To: {t.replyTo:h}{end:}"
+ "{if:t.replyTo}Reply-To: {t.replyTo:h}{end:}",
+ "{if:t.mailgunVariables}X-Mailgun-Variables: {t.mailgunVariables:h}{end:}"
))."\n");
function messageFrom()
{
- return '"' . addslashes($this->from_name) . '" <' . $this->from_email. '>' ;
+ if (empty($this->from_name)) {
+ return trim($this->from_email);
+ }
+ return trim('"' . addslashes($this->from_name) . '" <' . $this->from_email. '>') ;
}
function formatDate($dt, $format = 'd/M/Y')