foreach ($xpath->query('//img[@src]') as $img) { // process images!
$href = $img->getAttribute('src');
- $cid = explode('#', $href);
- if(isset($cid[1])){
- $img->setAttribute('src', 'cid:' . $cid[1]);
+ $hash = explode('#', $href);
+ // we name all our cid's as attachment-*
+ // however the src url may be #image-*
+
+
+ if(!isset($hash[1])){
+ continue;
+ }
+ $cid = explode('-', $hash[1]);
+ if(!empty($cid[1])){
+ $img->setAttribute('src', 'cid:attachment-' . $cid[1]);
}
}
- $unsubscribe = false;
+ $unsubscribe = $this->unsubscribe_url();
- if(!empty($cfg)){
- $unsubscribe = $cfg ['server_baseurl'] . '/Crm/Unsubscribe/' . $this->id . '/{person.id}';
- }
-
foreach ($xpath->query('//a[@href]') as $a) {
$href = $a->getAttribute('href');
return;
}
+
+ function unsubscribe_url()
+ {
+ $unsubscribe = false;
+
+ $cfg = isset(HTML_FlexyFramework::get()->Pman_Crm) ? HTML_FlexyFramework::get()->Pman_Crm : false;
+
+ if(!empty($cfg)){
+ $unsubscribe = $cfg ['server_baseurl'] . '/Crm/Unsubscribe/' . $this->id . '/{person.id}';
+ }
+
+ return $unsubscribe;
+ }
/**
*
* Usage:
* $x->send(array(
* 'rcpts' => "Tester <sales@roojs.com>",
* 'page' => $this
+ * 'mailer_opts' => array( <<< additional options, like urlmap..)
* 'link' => 'http://......'
);
* // on the template use {link:h} to render the link
function send($obj, $force = true, $send = true)
{
$contents = (array)$obj;
- error_log($this)
+
if(empty($this->id)){
$this->get('name', $contents['template']);
}
if(empty($this->id)){
$p = new PEAR();
- return $p->raiseError("template [{$contents['template']}]has not been set");
+ return $p->raiseError("template [{$contents['template']}] has not been set");
}
if(empty($contents['subject'])){
$contents['subject'] = $this->subject;
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
- ));
+ 'contents' => $contents,
+ 'css_embed' => true, // we should always try and do this with emails...
+ );
+ if (isset($contents['rcpts'])) {
+ $cfg['rcpts'] = $contents['rcpts'];
+ }
+ if (isset($contents['mailer_opts']) && is_array($contents['mailer_opts'])) {
+ $cfg = array_merge($contents['mailer_opts'], $cfg);
+ }
+
+
+ $r = new Pman_Core_Mailer($cfg);
$imageCache = session_save_path() . '/email-cache-' . $ui['name'] . '/mail/' . $this->tableName() . '-' . $this->id . '-images.txt';
"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')