require_once 'Pman.php';
-class Pman_Crm_MessagePreview extends Pman
+class Pman_Core_MessagePreview extends Pman
{
var $masterTemplate = 'mail/MessagePreview.html';
function get()
{
- if(empty($_REQUEST['_id'])){
- $this->jerr('id got error');
+ if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
+ $this->jerr('Missing Options');
}
- $mlq = DB_DataObject::factory('crm_mailing_list_message');
+
+ $mlq = DB_DataObject::factory($_REQUEST['_table']);
$mlq->get($_REQUEST['_id']);
function post()
{
- if(empty($_REQUEST['_id'])){
- $this->jerr('id got error');
+ if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){
+ $this->jerr('Missing Options');
}
- if(empty($_REQUEST['_action'])){
- $this->jerr('preview type not set');
+
+ if($_REQUEST['_table'] == 'core_email'){
+ $this->coreEmailSendTest();
}
+
$mid = $_REQUEST['_id'];
- $cfg = HTML_FlexyFramework::get()->Pman_Crm;
+ $mlq = DB_DataObject::factory($_REQUEST['_table']);
-
-
- $q = DB_DataObject::factory('crm_mailing_list_queue');
- $q->id = 'test-message-'. $mid;
- $q->message_id = $mid;
- $q->message_id_subject = $q->message()->subject;
- $q->message_id_from_email = $cfg['from_email'];
- $q->message_id_from_name = "Email Test";
+ $mlq->get($_REQUEST['_id']);
- $q->cachedMailWithOutImages(true);
- $r = $q->getMailerObject($this->authUser, false, false, true);
- //print_r($r->toData());
- $ret = $r->toData();
- $images = file_get_contents(session_save_path() . '/email-cache-' . getenv('APACHE_RUN_USER') . '/mail/' . $q->id . '-images.txt');
- // var_dump($images);exit;
+ $content = array(
+ 'template' => $mlq->name,
+ 'person' => $this->authUser
+ );
- $ret['body'] = str_replace('%Images%', $images, $ret['body']);
+ $sent = DB_DataObject::factory($_REQUEST['_table'])->send($content);
- $sent = $r->send($ret);
if(!is_object($sent)){
$this->jok('SUCCESS');
}
- $this->jerr('error!!:' . $sent->toString());
- /*
- $ret = $r->toData();
-
- //print_r($ret);exit;
- $images = file_get_contents(session_save_path() . '/email-cache-' . get_current_user() . '/mail/' . $this->id . '-images.txt');
- // var_dump($images);exit;
-
- $ret['body'] = str_replace('%Images%', $images, $ret['body']);
- return $ret;
-
-
-
-
-
- $message = DB_DataObject::factory('crm_mailing_list_message');
- if(!$message->get($mid)){
- $this->jerr("Error occour on getting message!");
- }
- $mm = clone($message);
- $message->processRelacements($this->authUser);
-
- $ids = $mm->attachmentIds();
- //$this->jerr(print_r($ids,true));
-
+ $this->jerr('error!!:' . $sent->toString());
+ }
+
+ function coreEmailSendTest()
+ {
+ $core_email = DB_DataObject::factory('core_email');
+ if(!$core_email->get($_REQUEST['_id'])){
+ $this->jerr('Invalid Message ID');
+ }
+ if(empty($core_email->test_class)){
+ $this->jerr("[{$core_email->name}] does not has test class");
+ }
+ require_once "{$core_email->test_class}.php";
+ $cls = str_replace('/', '_', $core_email->test_class);
+ $x = new $cls;
+ $method = "test_{$core_email->name}";
- require_once 'Pman/Core/Mailer.php';
- $i = DB_DataObject::factory('Images');
- $i->onid = $mid;
- $i->ontable = 'crm_mailing_list_message';
- $i->whereAddIn('id', $ids, 'int');
- $i->find();
- $attachment = array();
- while ($i->fetch()){
- $ii = clone($i);
- require_once 'File/MimeType.php';
- $y = new File_MimeType();
- $ii->ext = $y->toExt(trim((string) $ii->mimetype ));
- $ii->file = chunk_split(base64_encode(file_get_contents($ii->getStoreName())));
- $attachment[] = $ii;
+ if(!method_exists($x, $method)){
+ $this->jerr("{$method} does not exists in {$cls}");
}
+
+ $content = $x->{$method}($this, $this->authUser);
- $cfg = HTML_FlexyFramework::get()->Pman_Crm;
-
-
- $template = ($_REQUEST['_action'] == 'html') ? 'mixedMail' : 'plainMail';
-
- $random_hash = md5(date('r', time()));
- $r = new Pman_Core_Mailer(array(
- 'template'=> $template,
- 'page' => $this,
- 'contents' => array(
- 'random_hash' => $random_hash,
- 'person' => $this->authUser,
- 'data' => $message,
- 'attach' => $attachment,
- 'from' => '<'.$cfg['from_email'].'>'
- )
- ));
- //print_R($r->toData());
- $sent = $r->send();
- if(!is_object($sent)){
- $this->jok('SUCCESS');
+ $sent = $core_email->send($content);
+
+ if(is_object($sent)){
+ $this->jerr("Error sending email - " . $sent->toString());
}
- $this->jerr('error!!:' . $sent->toString());
- */
+ $this->jok('SUCCESS');
}
-
}