486e86525ffc1bb8769a34230515be2bfe474adb
[Pman.Core] / Import / Core_email.php
1 <?php
2
3
4
5 require_once 'Pman.php';
6
7 class Pman_Core_Import_Core_email extends Pman 
8 {
9     static $cli_desc = "Import an email into core_email template"; 
10     
11     static $cli_opts = array(
12         'file' => array(
13             'desc' => 'File to import',
14             'short' => 'f',
15             'min' => 1,
16             'max' => 1,
17             
18         ),
19         'master' => array(
20             'desc' => 'Master template (wrapper to body)',
21             'short' => 'm',
22             'default' => '',
23             'min' => 1,
24             'max' => 1,
25             
26         ),
27     );
28     
29     function getAuth()
30     {
31         $ff = HTML_FlexyFramework::get();
32         
33         if (!$ff->cli) {
34             die("cli only");
35         }
36         
37     }
38
39     function get($part='', $opts){
40         
41        // DB_DataObject::debugLevel(1);
42         
43         $template_name = preg_replace('/\.[a-z]+$/i', '', basename($opts['file']));
44         
45         if (!file_exists($opts['file'])) {
46             $this->jerr("file does not exist : " . $opts['file']);
47         }
48          
49         $c = DB_dataObject::factory('core_email');
50         $ret = $c->get('name',$template_name);
51         if($ret ) {
52             $this->jerr("we do not support updating the files ... - especially if the user has changed them!!");
53         }
54         
55         $mailtext = file_get_contents($opts['file']);
56
57         require_once 'Mail/mimeDecode.php';
58         require_once 'Mail/RFC822.php';
59         
60         $decoder = new Mail_mimeDecode($mailtext);
61         $parts = $decoder->getSendArray();
62         if (is_a($parts,'PEAR_Error')) {
63             echo $parts->toString() . "\n";
64             exit;
65         }
66         
67         $headers = $parts[1];
68         $from = new Mail_RFC822();
69         $from_str = $from->parseAddressList($headers['From']);
70         
71         $from_name  = trim($from_str[0]->personal, '"');
72         
73         $from_email = $from_str[0]->mailbox . '@' . $from_str[0]->host;
74         
75         
76         $c->setFrom(array(
77             'from_name'     => $from_name,
78             'from_email'    => $from_email,
79             'subject'       => $parts[1]['Subject'],
80             'name'          => $template_name,
81             'bodytext'      => $parts[2],
82             'updated_dt'     => date('Y-m-d H:i:s'),
83             'created_dt'     => date('Y-m-d H:i:s'),
84         ));
85         $c->insert();
86         
87         die("done\n");
88     }
89 }