예제 #1
0
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
if ($argc > 1) {
    $_SERVER['PHABRICATOR_ENV'] = $argv[1];
}
$root = dirname(dirname(dirname(__FILE__)));
require_once $root . '/scripts/__init_script__.php';
require_once $root . '/externals/mimemailparser/MimeMailParser.class.php';
$parser = new MimeMailParser();
$parser->setText(file_get_contents('php://stdin'));
$text_body = $parser->getMessageBody('text');
$text_body_headers = $parser->getMessageBodyHeaders('text');
$content_type = idx($text_body_headers, 'content-type');
if (!phutil_is_utf8($text_body) && (preg_match('/charset="(.*?)"/', $content_type, $matches) || preg_match('/charset=(\\S+)/', $content_type, $matches))) {
    $text_body = phutil_utf8_convert($text_body, "UTF-8", $matches[1]);
}
$headers = $parser->getHeaders();
$headers['subject'] = iconv_mime_decode($headers['subject'], 0, "UTF-8");
$headers['from'] = iconv_mime_decode($headers['from'], 0, "UTF-8");
$received = new PhabricatorMetaMTAReceivedMail();
$received->setHeaders($headers);
$received->setBodies(array('text' => $text_body, 'html' => $parser->getMessageBody('html')));
$attachments = array();
foreach ($parser->getAttachments() as $attachment) {
예제 #2
0
<?php

/**
 * To run this example you need to pass in some input via STDIN
 */
require_once '../MimeMailParser.class.php';
$Parser = new MimeMailParser();
$Parser->setStream(STDIN);
$to = $Parser->getHeader('to');
$delivered_to = $Parser->getHeader('delivered-to');
$from = $Parser->getHeader('from');
$subject = $Parser->getHeader('subject');
$text = $Parser->getMessageBody('text');
$html = $Parser->getMessageBody('html');
$attachments = $Parser->getAttachments();
// dump it so we can see
var_dump($to, $delivered_to, $from, $subject, $text, $html, $attachments);
?>

예제 #3
0
 $counter = 1;
 while (count($info->parts) > 1 && count($info->parts) > $counter) {
     if ($info->parts[$counter]->ifparameters == 1) {
         $filename = $info->parts[$counter]->parameters[0]->value;
     } else {
         if ($info->parts[$counter]->ifdparameters == 1) {
             $filename = $info->parts[$counter]->dparameters[0]->value;
         }
     }
     $mimetype = $type[(int) $info->parts[$counter]->type] . '/' . $info->parts[$counter]->subtype;
     $mimetype = strtolower($mimetype);
     echo " - File: {$filename} ({$mimetype})... ";
     $fullfilename = 'tmp/attachments/' . $uid . '/' . $filename;
     $file = 'tmp/attachments/' . $uid . '/mail.txt';
     imap_savebody($inbox, $file, $message->msgno);
     $parser = new MimeMailParser();
     $parser->setPath($file);
     $attachments = $parser->getAttachmentsAsStreams();
     file_put_contents($fullfilename, $attachments[$counter - 1]);
     echo "done\n";
     $package->addFile($filename, $mimetype);
     $counter++;
 }
 // Deposit the package
 $package->create();
 $client = new SWORDAPPClient();
 $response = $client->deposit($swordurl, $sworduser, $swordpassword, '', 'tmp/' . $packagefilename, 'http://purl.org/net/sword-types/METSDSpaceSIP', 'application/zip', false, true);
 // print_r($response);
 $id = $response->sac_id;
 $id = str_replace("http://hdl.handle.net/", "http://dspace.swordapp.org/jspui/handle/", $id);
 echo "Deposited at " . $id . "\n\n";
예제 #4
0
//	tasks_centerlimit@discreteevents.com
//	reminders_centerlimit@discreteevents.com
//	notes_centerlimit@discreteevents.com
//	comments_centerlimit@discreteevents.com  (with subject TN1234 to add a comment on task 1234 )
error_reporting(E_ALL);
ini_set('display_errors', '1');
$APP_PATH = "/www_apps/devents/";
$ALLOWED_ACTIONS = array('tasks', 'comments', 'reminders', 'notes');
include_once $APP_PATH . "include_variables.php";
if (!@mysql_select_db(MASTERDB)) {
    exit(0);
}
include_once $APP_PATH . "include_functions.php";
include_once $APP_PATH . "ssadmin/processemails_include.php";
include_once $APP_PATH . "phpmailer/mimemailparser/MimeMailParser.class.php";
$Parser = new MimeMailParser();
$Parser->setPath($argv[1]);
$thisemail_toAddress = getEmailIdFromString($Parser->getHeader('to'));
$thisemail_ccAddress = getEmailIdFromString($Parser->getHeader('cc'));
$thisemail_fromAddress = getEmailIdFromString($Parser->getHeader('from'));
$thisemail_subject = $Parser->getHeader('subject');
// $thisemail_htmlbody = $Parser->getMessageBody('html');
// $thisemail_attachments = $Parser->getAttachments();
if ($Parser->getHeader('content-transfer-encoding') == 'base64') {
    $thisemail_body = base64_decode($Parser->getMessageBody('text'));
} else {
    $thisemail_body = $Parser->getMessageBody('text');
}
$pos = strpos(strtolower($thisemail_toAddress), '@discreteevents.com');
if ($pos === false) {
    $pos = strpos(strtolower($thisemail_ccAddress), '@discreteevents.com');
예제 #5
0
파일: pipe.php 프로젝트: anteknik/helpdesk
    require_once INCLUDES . 'classes/classMysql.php';
    $db = new MySQLDB();
}
$db->connect($helpdeskz->config['Database']['dbname'], $helpdeskz->config['Database']['servername'], $helpdeskz->config['Database']['username'], $helpdeskz->config['Database']['password'], $helpdeskz->config['Database']['tableprefix']);
//Settings
$settings = array();
$q = $db->query("SELECT * FROM " . TABLE_PREFIX . "settings");
while ($r = $db->fetch_array($q)) {
    $settings[$r['field']] = $r['value'];
}
if ($settings['email_piping'] == 'no') {
    exit;
}
include INCLUDES . 'language/' . $settings['client_language'] . '.php';
$text = file_get_contents('php://stdin');
$Parser = new MimeMailParser();
$Parser->setText($text);
$to = $Parser->getHeader('to');
$from = $Parser->getHeader('from');
$text = $Parser->getMessageBody('text');
$attachments = $Parser->getAttachments();
$subject = $Parser->getHeader('subject');
$subject2 = imap_mime_header_decode($subject);
for ($i = 0; $i < count($subject2); $i++) {
    $subjectdecoded .= $subject2[$i]->text;
}
$subject = $subjectdecoded;
if (strpos($from, '<') !== false) {
    $from2 = explode('<', $from);
    $from3 = explode('>', $from2[1]);
    $from_name = trim($from2[0]);
예제 #6
0
파일: pipe.php 프로젝트: jemmy655/TempMail
<?php

error_reporting(0);
require_once 'PHPMailerAutoload.php';
require_once 'MimeMailParser.class.php';
require_once 'rb.php';
define(DB_DNS, "mysql:host=localhost;dbname=database");
define(DB_UNAME, "username");
define(DB_PASS, "password");
R::setup(DB_DNS, DB_UNAME, DB_PASS);
$parser = new MimeMailParser();
$parser->setStream(STDIN);
$to = $parser->getHeader('to');
$mail = explode('@', $to);
if ($bean = R::findOne('email', 'email=:email AND time>=:time', array(':email' => $mail[0], ':time' => time()))) {
    $from = $parser->getHeader('from');
    $subject = $parser->getHeader('subject');
    $mail = new PHPMailer();
    $mail->From = '*****@*****.**';
    $mail->FromName = 'tempmail.ir';
    $mail->addReplyTo($from);
    $mail->addAddress($bean->forwardto);
    $mail->Subject = $subject;
    $mail->AltBody = $parser->getMessageBody();
    $mail->Body = $parser->getMessageBody('html');
    $mail->isHTML();
    $save_dir = __DIR__ . '/attachments/';
    $hash = time() . md5($to . $from . $subject);
    $filenames = array();
    foreach ($parser->getAttachments() as $attachment) {
        $filenames[] = $attachment->filename;
<?php

require_once __DIR__ . '/../phplib/util.php';
require_once __DIR__ . '/../phplib/mime-mail-parser/MimeMailParser.class.php';
log_scriptLog("getWotdImageByEmail: starting");
$validSenderAddress = Config::get("WotD.imageEmailSender") or die("No image email sender in config file\r\n");
$validHeight = Config::get("WotD.wotdImageHeight") or die("No image height in config file\r\n");
$validWidth = Config::get("WotD.wotdImageWidth") or die("No image width in config file\r\n");
$daysInterval = Config::get("WotD.interval") or die("No days interval in config file\r\n");
$email = file_get_contents("php://stdin");
$Parser = new MimeMailParser();
$Parser->setText($email);
$sender = $Parser->getHeader("from");
$subject = imap_utf8($Parser->getHeader("subject"));
$parsedSender = mailparse_rfc822_parse_addresses($sender);
if (count($parsedSender) != 1 || $parsedSender[0]['address'] !== $validSenderAddress) {
    OS::errorAndExit("Ignoring message '{$subject}' due to invalid sender '{$sender}'", 0);
}
$word = GetWotdFromSubject($subject);
$attachments = $Parser->getAttachments();
if (empty($attachments)) {
    OS::errorAndExit("Ignoring message '{$subject}' because it has no attachments", 0);
} elseif (count($attachments) > 1) {
    OS::errorAndExit("Ignoring message '{$subject}' because it has more than 1 attachment", 0);
}
$contentType = $attachments[0]->content_type;
if (!StringUtil::startsWith($contentType, "image/")) {
    OS::errorAndExit("Ignoring message '{$subject}' because its attachment is not an image", 0);
}
$image = $attachments[0]->content;
$imageExtension = $attachments[0]->getFileExtension();
예제 #8
0
<?php

require_once '../MimeMailParser.class.php';
$path = '../data/attachments-mail.txt';
$Parser = new MimeMailParser();
$Parser->setText(file_get_contents($path));
//$Parser->setPath($path);
$to = $Parser->getHeader('to');
$delivered_to = $Parser->getHeader('delivered-to');
$from = $Parser->getHeader('from');
$subject = $Parser->getHeader('subject');
$text = $Parser->getMessageBody('text');
$html = $Parser->getMessageBody('html');
$attachments = $Parser->getAttachments();
// dump it so we can see
var_dump($to, $delivered_to, $from, $subject, $text, $html, $attachments);
var_dump($attachments[0]->content, $attachments[0]->extension);
예제 #9
0
    $action = $_GET['action'];
    require_once 'Zabbix.php';
    $zabbix = new Zabbix(array('host' => $ZABBIX_HOST));
    $sql = "SELECT * FROM email_tracker.email_schedule WHERE id = " . mysql_real_escape_string($eid);
    $results = mysql_query($sql, $db);
    $row = mysql_fetch_assoc($results);
    if (empty($row)) {
        echo "Schedule Not Found!";
        die;
    }
    switch ($action) {
        case "ack":
            $zabbix->check('email.mon[' . $eid . ']', 'OK', $row['zabbix_host']);
            echo $row['name'] . " Has been flagged as ok";
            break;
    }
    die;
}
if (!file_exists($EMAIL_STORE . $eid)) {
    echo "Email Not Found";
    die;
}
$Parser = new MimeMailParser();
$Parser->setPath($EMAIL_STORE . $eid);
$to = $Parser->getHeader('to');
$from = $Parser->getHeader('from');
$subject = $Parser->getHeader('subject');
$text = $Parser->getMessageBody('text');
$html = $Parser->getMessageBody('html');
$attachments = $Parser->getAttachments();
echo $html;
예제 #10
0
    define('MTTPATH', dirname(__FILE__) . '/');
}
require_once MTTPATH . 'init.php';
$db = DBConnection::instance();
define("__SIG__", Config::get('signature'));
if (!__SIG__) {
    die("error: no signature");
}
if (isset($argv[1])) {
    switch ($argv[1]) {
        case "importmail":
            ##########################
            # pecl install mailparse #
            ##########################
            require_once MTTPATH . "third-party/MimeMailParser.class.php";
            $Parser = new MimeMailParser();
            $Parser->setStream(STDIN);
            $parsed = parseMail($Parser->getMessageBody('text'), $db, $Parser->getHeader('from'));
            if ($parsed['body']) {
                $parsed['body'] = trim($parsed['body']) . "\n\n";
            } else {
                $parsed['body'] = "";
            }
            $parsed['body'] .= "Received " . date("F j, Y, g:i A") . " via mail from: " . $Parser->getHeader('from');
            $t = addTask($db, $parsed['list'], $Parser->getHeader('subject'), null, $parsed['body'], $parsed['priority'], $parsed['duedate'], $parsed['tags']);
            if (!$t['total'] || $t['total'] < 1) {
                err("error creating new task.", $Parser->getHeader('from'));
            }
            break;
        case "getduetasks":
            $where = array();