⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 email.class.inc.php

📁 This is the script which used on 10minutemail.com for temporary email.
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php

/** 
 * GentleSource Temporary E-mail - email.class.inc.php
 * 
 * (C) Ralf Stadtaus http://www.gentlesource.com/
 */


require_once 'database.class.inc.php';
require 'content.class.inc.php';




/**
 * Manage e-mails
 * 
 */
class t12l_email extends t12l_content
{
    
    
    
    /**
     * Number of characters in excerpt
     */
    var $excerpt_length = 200;
    
    var $delete_emails  = true;
    var $maxlength      = 20;    
    var $runs           = 10;
    var $runtime        = 300;
    
    var $detail_template  = 'email.tpl.html';
    
    /**
     * Lifetime of an email address in seconds
     */
    var $lifetime   = 900;
    
    /**
     * Number of e-mails to be downloaded during one connection to the mailbox
     */
    var $download_email_num = 200;
    
    /**
     * Number of connections to the mailbox during one download attempt
     */
    var $download_connection_num = 3;
    
// -----------------------------------------------------------------------------




    /**
     * Main
     * 
     */
    function main()
    {
        global $t12l;
    
        
        
        $message = array();
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Check for module standalone call
        if (t12l_gpc_vars('module')) {
            $module_data = array('data' => t12l_gpc_vars('module'));
            t12l_module::call_module('standalone', $module_data, $t12l['module_additional']);
            exit;
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Serve feed
        if (t12l_gpc_vars('d') == 'feed') {
            $this->feed();
            exit;
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Serve gadget
        if (t12l_gpc_vars('d') == 'gadget') {
            if ($gadget_function = t12l_gpc_vars('f')) {
                $this->gadget($gadget_function);
                exit;
            }
            exit;
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Check for template
        if ($template = t12l_gpc_vars('t')) {
            $this->template($template);
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Start mail handling
        $mail = new t12l_email();
        
        $mail->lifetime = t12l_time::convert_to_seconds($t12l['lifetime'], $t12l['lifetime_unit']);
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // XMLHTTPRequests
        if (t12l_gpc_vars('d') == 'xhr') {
            if ($xhr_function = t12l_gpc_vars('f')) {
                $mail->xmlhttprequest($xhr_function);
                exit;
            }
            
            include 'xmlhttprequest.class.inc.php';
            t12l_xmlhttprequest::server();
            exit;
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Ditch e-mail address
        if (t12l_gpc_vars('ditchemail')) {
            $mail->destroy_address();
            header('Location: ' . $t12l['server_protocol'] . $t12l['server_name'] . $t12l['script_url']);
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Delete e-mail
        $delete_mail_dialogue   = false;
        $yes_delete_query       = '';
        $no_keep_query          = '';
        if ($t12l['allow_delete_email'] == 'Y'
                and $mail_id = t12l_gpc_vars('m')
                and t12l_gpc_vars('d') == 'd') {
            if (t12l_gpc_vars('c') == 'y') {
                if ($mail->delete_mail($mail_id)) {
                    header('Location: ' . $t12l['server_protocol'] . $t12l['server_name'] . $t12l['script_url']);
                }
            } else {
                $t12l['message'][] = $t12l['text']['txt_sure_delete_mail'];
                $delete_mail_dialogue = true;
                $yes_delete_query = '?m=' . $mail_id . '&amp;d=d&amp;c=y';
                if ($mail_id = t12l_gpc_vars('m')) {
                    $no_keep_query = '?m=' . $mail_id;
                }
            }
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Get e-mail address
        if (t12l_gpc_vars('getemail')) {
            if ($mail->get_address()) {
                header('Location: ' . $t12l['server_protocol'] . $t12l['server_name'] . $_SERVER['REQUEST_URI']);
                exit;
            } else {
                $t12l['message'][] = $t12l['text']['txt_could_not_create_email'];
            }
        }
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Build e-mail address from input and from defined e-mail host name
        if (isset($t12l['_post']['setemail'])) {
            $_POST['setemailaddressintern'] = $_POST['setemailaddress'] . '@' . $t12l['email_address_host_name'];
        }
        
        
        // Handle and validate form
        require_once 'HTML/QuickForm.php';
        
        
        // Start form handler
        $form = new HTML_QuickForm('setemailform', 'POST', $t12l['script_url'] . '?d=xhr&f=setaddress', '', 'onsubmit="return !HTML_AJAX.formSubmit(this, \'temporary_address\');"');
//        $form = new HTML_QuickForm('setemailform', 'POST', $t12l['script_url']);
        
        
        // Get form configuration
        require 'email_form.inc.php';
        
        
        // Validate form
        if (isset($t12l['_post']['setemail'])
                and $form->validate()) {
            if ($t12l['allow_set_email_address'] == 'Y'
                    and $mail->get_address(true)) {
                header('Location: ' . $t12l['server_protocol'] . $t12l['server_name'] . $_SERVER['REQUEST_URI']);
                exit;
            } else {
                $t12l['message'][] = $t12l['text']['txt_could_not_create_email'];
            }
        }
        
        
        
        require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
        $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($this->output->get_object, true);
                   
        $form->accept($renderer);
        
        
        // Assign array with form data
        $this->assign('setemailform', $renderer->toArray()); 
        
        // -----------------------------------------------------------------------------
        
        
        
        $show_address = false;
        if (t12l_session::get('address_id') or t12l_gpc_vars('a')) {
            $show_address = true;
        }
        $this->assign('show_address', $show_address);
        
        // -----------------------------------------------------------------------------
        
        
        
        
        if (t12l_session::get('address_id') or t12l_gpc_vars('a')) {
            $address_data = $mail->get_address();
            $address_data['minutes_left'] = round($address_data['time_left'] / 60); 
            $this->assign($address_data);
        }
        
        // -----------------------------------------------------------------------------
        
        
        // Get mail content
        $show_mail_details  = false;
        $mail_details       = array();
        if ($mail_id = t12l_gpc_vars('m')) {
            if ($mail_details = $mail->get_mail($mail_id)) {
                $show_mail_details = true;
                $show_mail_list    = false;
            }
        }
        $this->assign($mail_details);
        
        // -----------------------------------------------------------------------------
        
        
        // Get mail list
        $show_mail_list = false;
        if ($show_mail_details == false
                and $address = t12l_session::get('address_id')) {
//            include 'emaillist.class.inc.php';
//            $mail_list_setup = array(   'direction' => $t12l['frontend_order'],
//                                        'limit'     => 0);
//            $mail_list = new t12l_email_list(false, $mail_list_setup);
            $email_message_result = $this->email_message_list();
            if (isset($email_message_result['mail_data'])) {
                $this->assign('mail_list', $email_message_result['mail_data']);
                $show_mail_list = true;
            }
//            $mail_list_values = $mail_list->values();
            $this->assign($email_message_result['mail_list_values']);
        }
        
        // -----------------------------------------------------------------------------
        
        
        // Display reply form and send e-mail
        $show_reply_form = false;
        if (t12l_session::get('address_id')    
                and t12l_gpc_vars('d') == 'r' 
                and $mail_id = t12l_gpc_vars('m')
                and $show_mail_details == true) {
            $show_reply_form = true;    
            require_once 'HTML/QuickForm.php';
            $form = new HTML_QuickForm('reply', 'POST', $t12l['script_url'] . '?m=' . $mail_id);
            $form->addElement('textarea', 'text', $t12l['text']['txt_reply'], array('rows' => 8, 'cols' => 30));
            $form->addElement('submit', 'save', $t12l['text']['txt_submit']);
            $form->addElement('hidden', 'm');
            $form->addElement('hidden', 'd');
            $form->addRule('text',   $t12l['text']['txt_enter_reply_text'], 'required');
            $defaults = array(  'd' => 'r',
                                'm' => $mail_id,
                                );
            $form->setConstants($defaults);
            
            if ($form->validate()) {
                if ($mail->send_reply($mail_id)) {
                    $t12l['message'][] = $t12l['text']['txt_reply_has_been_sent'];
                    $show_reply_form = false;
                } else {
                    $t12l['message'][] = $t12l['text']['txt_reply_has_not_been_sent'];
                }
            }
        
            require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
            $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($this->output->get_object, true);               
            $form->accept($renderer);
            $this->assign('reply', $renderer->toArray());
        }    
        
        // -----------------------------------------------------------------------------
        
        
        // Delete expired e-mails and addresses
        $mail->delete_expired();
        
        // -----------------------------------------------------------------------------
        
        
        
        
        // Reset time
        if (t12l_gpc_vars('resettime')) {
            $mail->reset_time();
            header('Location: ' . $t12l['server_protocol'] . $t12l['server_name'] . $_SERVER['REQUEST_URI']);
        }
        
        // -----------------------------------------------------------------------------       




        // Get statistics
        $statistics = array(
                        'received_emails'       => $t12l['received_emails'],
                        'valid_emails'          => $t12l['sequence_mail'],
                        'expired_emails'        => $t12l['expired_emails'],
                        'sent_emails'           => $t12l['sent_emails'],
                        'created_addresses'     => $t12l['created_addresses'],
                        );
                        
        $this->assign($statistics);        
        
        // -----------------------------------------------------------------------------
        
        
        // Output
        $this->assign('page_data', array('page_title' => $t12l['text']['txt_disposable_email_address']));
        $this->assign('show_mail_details',   $show_mail_details);
        $this->assign('show_mail_list',      $show_mail_list);
        $this->assign('show_reply_form',     $show_reply_form);
        $this->assign('message',             $message);
        $this->assign('delete_mail_dialogue',$delete_mail_dialogue);
        $this->assign('yes_delete_query',    $yes_delete_query);
        $this->assign('no_keep_query',       $no_keep_query);
        
        
        return $this->finish();
    }
    
// -----------------------------------------------------------------------------




    /**
     * Feed
     * 
     */
    function feed()
    {
        global $t12l;
        
        if (!$address = t12l_gpc_vars('a')) {
            return false;
        }
        $address_id = md5($address);
        

        // Default output is RSS2.0
        $rss_template = 'rss_2.0.xml';
        switch (trim(t12l_gpc_vars('f'))) {
            case 'atom':    
                $rss_template = 'atom.xml';
                break;
            case 'rss2':
            default:        
                $rss_template = 'rss_2.0.xml';
                break;
        }
        
        $t12l['alternative_template'] = 'syndication';
        $updated_atom = date('Y-m-d\TH:i:s\Z', t12l_time::current_timestamp());
        $mail_data  = array();
        
        $out = new t12l_output();
        $out->set_global_template($rss_template);
        
        
        if ($t12l['activate_syndication'] == 'Y') {
            include 'emaillist.class.inc.php';
            
            $mail_list_setup = array(   'direction' => $t12l['frontend_order'],
                                        'limit'     => 0);
            $mail_list = new t12l_email_list(false, $mail_list_setup);
            if ($mail_data = $mail_list->get_list($address_id)) {            
                if (isset($article_data[0])) {
                    $updated_atom = $article_data[0]['last_modified_atom'];
                }
            }
        }
                 
        $out->assign('mail_list', $mail_data);
        $out->assign('updated_atom', $updated_atom);
        $out->assign('self_script_url', $t12l['server_protocol'] . $t12l['server_name'] . $t12l['script_url'] . '?d=feed&amp;f=atom&amp;a=' . $address);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -