Exemple #1
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) {
    if (preg_match('@text/(plain|html)@', $attachment->getContentType()) && $attachment->getContentDisposition() == 'inline') {
        // If this is an "inline" attachment with some sort of text content-type,
<?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);
?>

Exemple #3
0
//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]);
    $from_email = trim($from3[0]);
} else {
    $from_name = $from;
    $from_email = $from;
Exemple #4
0
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');
    if ($pos === false) {
        // wonder what to do with this email ? calling quits
        exit(0);
    } else {
        list($before_underscore) = explode('_', $thisemail_ccAddress);
        $SUBDOMAIN = strBetweenXY($thisemail_ccAddress, '_', '@');
    }
} else {
    list($before_underscore) = explode('_', $thisemail_toAddress);
Exemple #5
0
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;
        if ($fp = fopen($save_dir . $hash . $attachment->filename, 'w')) {
            while ($bytes = $attachment->read()) {
                $content = $bytes;
                fwrite($fp, $bytes);
            }
            fclose($fp);
            $mail->addAttachment($save_dir . $hash . $attachment->filename, $attachment->filename);
        }
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();
            $start = date("Y-m-d");
            $end = date("Y-m-d", time() + 60 * 60 * 24 * 14);