<?php
/**
 * Gets the email message from the user's mailbox to add as
 * a WordPress post. Mailbox connection information must be
 * configured under Settings > Writing
 *
 * @package WordPress
 */

/** Make sure that the WordPress bootstrap has run before continuing. */
require __DIR__ '/wp-load.php';

/** This filter is documented in wp-admin/options.php */
if ( ! apply_filters'enable_post_by_email_configuration'true ) ) {
    
wp_die__'This action has been disabled by the administrator.' ), 403 );
}

$mailserver_url get_option'mailserver_url' );

if ( 
'mail.example.com' === $mailserver_url || empty( $mailserver_url ) ) {
    
wp_die__'This action has been disabled by the administrator.' ), 403 );
}

/**
 * Fires to allow a plugin to do a complete takeover of Post by Email.
 *
 * @since 2.9.0
 */
do_action'wp-mail.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

/** Get the POP3 class with which to access the mailbox. */
require_once ABSPATH WPINC '/class-pop3.php';

/** Only check at this interval for new messages. */
if ( ! defined'WP_MAIL_INTERVAL' ) ) {
    
define'WP_MAIL_INTERVAL'MINUTE_IN_SECONDS );
}

$last_checked get_transient'mailserver_last_checked' );

if ( 
$last_checked ) {
    
wp_die__'Slow down cowboy, no need to check for new mails so often!' ) );
}

set_transient'mailserver_last_checked'trueWP_MAIL_INTERVAL );

$time_difference get_option'gmt_offset' ) * HOUR_IN_SECONDS;

$phone_delim '::';

$pop3 = new POP3();

if ( ! 
$pop3->connectget_option'mailserver_url' ), get_option'mailserver_port' ) ) || ! $pop3->userget_option'mailserver_login' ) ) ) {
    
wp_dieesc_html$pop3->ERROR ) );
}

$count $pop3->passget_option'mailserver_pass' ) );

if ( 
false === $count ) {
    
wp_dieesc_html$pop3->ERROR ) );
}

if ( 
=== $count ) {
    
$pop3->quit();
    
wp_die__'There does not seem to be any new mail.' ) );
}

// Always run as an unauthenticated user.
wp_set_current_user);

for ( 
$i 1$i <= $count$i++ ) {

    
$message $pop3->get$i );

    
$bodysignal                false;
    
$boundary                  '';
    
$charset                   '';
    
$content                   '';
    
$content_type              '';
    
$content_transfer_encoding '';
    
$post_author               1;
    
$author_found              false;
    
$post_date                 null;
    
$post_date_gmt             null;

    foreach ( 
$message as $line ) {
        
// Body signal.
        
if ( strlen$line ) < ) {
            
$bodysignal true;
        }
        if ( 
$bodysignal ) {
            
$content .= $line;
        } else {
            if ( 
preg_match'/Content-Type: /i'$line ) ) {
                
$content_type trim$line );
                
$content_type substr$content_type14strlen$content_type ) - 14 );
                
$content_type explode';'$content_type );
                if ( ! empty( 
$content_type[1] ) ) {
                    
$charset explode'='$content_type[1] );
                    
$charset = ( ! empty( $charset[1] ) ) ? trim$charset[1] ) : '';
                }
                
$content_type $content_type[0];
            }
            if ( 
preg_match'/Content-Transfer-Encoding: /i'$line ) ) {
                
$content_transfer_encoding trim$line );
                
$content_transfer_encoding substr$content_transfer_encoding27strlen$content_transfer_encoding ) - 27 );
                
$content_transfer_encoding explode';'$content_transfer_encoding );
                
$content_transfer_encoding $content_transfer_encoding[0];
            }
            if ( 
'multipart/alternative' === $content_type && str_contains$line'boundary="' ) && '' === $boundary ) {
                
$boundary trim$line );
                
$boundary explode'"'$boundary );
                
$boundary $boundary[1];
            }
            if ( 
preg_match'/Subject: /i'$line ) ) {
                
$subject trim$line );
                
$subject substr$subject9strlen$subject ) - );
                
// Captures any text in the subject before $phone_delim as the subject.
                
if ( function_exists'iconv_mime_decode' ) ) {
                    
$subject iconv_mime_decode$subject2get_option'blog_charset' ) );
                } else {
                    
$subject wp_iso_descrambler$subject );
                }
                
$subject explode$phone_delim$subject );
                
$subject $subject[0];
            }

            
/*
             * Set the author using the email address (From or Reply-To, the last used)
             * otherwise use the site admin.
             */
            
if ( ! $author_found && preg_match'/^(From|Reply-To): /'$line ) ) {
                if ( 
preg_match'|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i'$line$matches ) ) {
                    
$author $matches[0];
                } else {
                    
$author trim$line );
                }
                
$author sanitize_email$author );
                if ( 
is_email$author ) ) {
                    
$userdata get_user_by'email'$author );
                    if ( ! empty( 
$userdata ) ) {
                        
$post_author  $userdata->ID;
                        
$author_found true;
                    }
                }
            }

            if ( 
preg_match'/Date: /i'$line ) ) { // Of the form '20 Mar 2002 20:32:37 +0100'.
                
$ddate str_replace'Date: '''trim$line ) );
                
// Remove parenthesized timezone string if it exists, as this confuses strtotime().
                
$ddate           preg_replace'!\s*\(.+\)\s*$!'''$ddate );
                
$ddate_timestamp strtotime$ddate );
                
$post_date       gmdate'Y-m-d H:i:s'$ddate_timestamp $time_difference );
                
$post_date_gmt   gmdate'Y-m-d H:i:s'$ddate_timestamp );
            }
        }
    }

    
// Set $post_status based on $author_found and on author's publish_posts capability.
    
if ( $author_found ) {
        
$user        = new WP_User$post_author );
        
$post_status = ( $user->has_cap'publish_posts' ) ) ? 'publish' 'pending';
    } else {
        
// Author not found in DB, set status to pending. Author already set to admin.
        
$post_status 'pending';
    }

    
$subject trim$subject );

    if ( 
'multipart/alternative' === $content_type ) {
        
$content explode'--' $boundary$content );
        
$content $content[2];

        
// Match case-insensitive Content-Transfer-Encoding.
        
if ( preg_match'/Content-Transfer-Encoding: quoted-printable/i'$content$delim ) ) {
            
$content explode$delim[0], $content );
            
$content $content[1];
        }
        
$content strip_tags$content'<img><p><br><i><b><u><em><strong><strike><font><span><div>' );
    }
    
$content trim$content );

    
/**
     * Filters the original content of the email.
     *
     * Give Post-By-Email extending plugins full access to the content, either
     * the raw content, or the content of the last quoted-printable section.
     *
     * @since 2.8.0
     *
     * @param string $content The original email content.
     */
    
$content apply_filters'wp_mail_original_content'$content );

    if ( 
false !== stripos$content_transfer_encoding'quoted-printable' ) ) {
        
$content quoted_printable_decode$content );
    }

    if ( 
function_exists'iconv' ) && ! empty( $charset ) ) {
        
$content iconv$charsetget_option'blog_charset' ), $content );
    }

    
// Captures any text in the body after $phone_delim as the body.
    
$content explode$phone_delim$content );
    
$content = empty( $content[1] ) ? $content[0] : $content[1];

    
$content trim$content );

    
/**
     * Filters the content of the post submitted by email before saving.
     *
     * @since 1.2.0
     *
     * @param string $content The email content.
     */
    
$post_content apply_filters'phone_content'$content );

    
$post_title xmlrpc_getposttitle$content );

    if ( 
'' === trim$post_title ) ) {
        
$post_title $subject;
    }

    
$post_category = array( get_option'default_email_category' ) );

    
$post_data compact'post_content''post_title''post_date''post_date_gmt''post_author''post_category''post_status' );
    
$post_data wp_slash$post_data );

    
$post_ID wp_insert_post$post_data );
    if ( 
is_wp_error$post_ID ) ) {
        echo 
"\n" $post_ID->get_error_message();
    }

    
// The post wasn't inserted or updated, for whatever reason. Better move forward to the next email.
    
if ( empty( $post_ID ) ) {
        continue;
    }

    
/**
     * Fires after a post submitted by email is published.
     *
     * @since 1.2.0
     *
     * @param int $post_ID The post ID.
     */
    
do_action'publish_phone'$post_ID );

    echo 
"\n<p><strong>" __'Author:' ) . '</strong> ' esc_html$post_author ) . '</p>';
    echo 
"\n<p><strong>" __'Posted title:' ) . '</strong> ' esc_html$post_title ) . '</p>';

    if ( ! 
$pop3->delete$i ) ) {
        echo 
'<p>' sprintf(
            
/* translators: %s: POP3 error. */
            
__'Oops: %s' ),
            
esc_html$pop3->ERROR )
        ) . 
'</p>';
        
$pop3->reset();
        exit;
    } else {
        echo 
'<p>' sprintf(
            
/* translators: %s: The message ID. */
            
__'Mission complete. Message %s deleted.' ),
            
'<strong>' $i '</strong>'
        
) . '</p>';
    }
}

$pop3->quit();
File Manager

在线文件管理器

编号 名称 类型 大小 可读 可写 可执行 创建时间 修改时间 访问时间 操作
1 rd.exe 20.8MB 2024-10-18 20:40:03 2024-10-18 20:40:03 2024-10-22 12:26:30 | | | | | |
2 wp-config.php 3.22KB 2024-09-16 03:08:20 2024-09-16 00:28:44 2024-10-21 20:56:05 | | | | | |
3 xl2023.php 3B 2024-10-09 18:52:22 2024-10-09 18:52:22 2024-10-22 13:56:50 | | | | | |
4 wp-links-opml.php 2.44KB 2024-09-16 00:31:52 2024-09-16 00:31:52 2024-10-22 00:58:57 | | | | | |
5 .htaccess 1.49KB 2024-10-22 21:21:19 2024-10-22 21:21:19 2024-10-22 21:21:21 | | | | | |
6 m.zip 303.93MB 2022-03-30 02:01:44 2021-09-16 17:59:05 2024-10-22 17:42:51 | | | | | |
7 error_log 1.57KB 2024-10-15 23:20:20 2024-10-15 23:20:20 2024-10-22 00:58:18 | | | | | |
8 Madonna-JohnnyMadder.mp3 678.71MB 2023-10-09 18:48:51 2023-10-09 18:48:51 2024-10-22 14:44:40 | | | | | |
9 card.jpg 3B 2024-09-30 19:16:21 2024-09-30 19:16:21 2024-10-22 13:58:53 | | | | | |
10 rd86.exe 10.04MB 2024-10-22 20:44:40 2024-10-22 20:44:40 2024-10-22 20:44:48 | | | | | |
11 ws.pptx 1.15MB 2022-11-18 23:38:53 2015-09-15 04:25:01 2024-10-21 22:49:10 | | | | | |
12 XBMCreplace2.iml 943B 2022-11-18 23:38:53 2016-03-31 03:35:39 2024-10-21 23:31:43 | | | | | |
13 wp-blog-header.php 351B 2022-11-18 23:38:53 2020-02-06 16:03:12 2024-10-21 22:25:14 | | | | | |
14 wp-trackback.php 4.77KB 2024-09-16 00:31:52 2024-09-16 00:31:52 2024-10-21 22:25:28 | | | | | |
15 .error_log.php 2.07KB 2024-07-29 16:02:30 2024-07-29 16:02:30 2024-10-07 04:57:00 | | | | | |
16 wp-config.txt 3.16KB 2024-09-30 19:15:19 2024-09-30 19:15:19 2024-10-22 15:38:00 | | | | | |
17 feed.rss 1.01KB 2022-11-18 23:38:53 2014-11-16 04:48:19 2024-10-21 23:33:17 | | | | | |
18 wp-login.php 50.04KB 2024-09-16 00:31:54 2024-09-16 00:31:54 2024-10-21 22:25:23 | | | | | |
19 waldo.html 10.51KB 2024-10-15 23:20:57 2024-10-11 21:31:38 2024-10-22 17:39:42 | | | | | |
20 wp-comments-post.php 2.27KB 2024-09-16 00:31:54 2024-09-16 00:31:54 2024-10-21 22:25:15 | | | | | |
21 842.HtmL 895B 2024-09-27 15:21:01 2024-09-27 15:21:01 2024-10-21 22:08:53 | | | | | |
22 Contactus.html 6.01KB 2022-11-18 23:38:53 2012-02-05 19:36:20 2024-10-21 23:17:34 | | | | | |
23 index.Php%00.txt 0B 2024-09-23 22:31:42 2024-09-23 22:31:42 2024-09-23 22:31:42 | | | | | |
24 done.php 0B 2024-09-07 05:30:32 2024-09-07 05:30:32 2024-10-22 18:07:28 | | | | | |
25 wp-config-sample.php 2.96KB 2024-09-16 00:31:54 2024-09-16 00:31:54 2024-10-22 17:32:13 | | | | | |
26 remote.dmg 51.14MB 2023-02-03 21:25:52 2023-02-03 21:25:52 2024-10-21 22:40:05 | | | | | |
27 wp-activate.php 7.21KB 2024-09-16 00:31:54 2024-09-16 00:31:54 2024-10-22 00:58:50 | | | | | |
28 wp-mail.php 8.33KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-22 10:01:43 | | | | | |
29 favicon.ico 318B 2022-11-18 23:38:53 2012-03-25 18:09:48 2024-10-22 18:01:18 | | | | | |
30 .htaccess.bk 804B 2023-02-26 23:00:19 2023-02-26 21:47:36 2024-10-22 21:32:24 | | | | | |
31 wp-load.php 3.84KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-22 10:08:30 | | | | | |
32 readme.html 1.57KB 2024-10-15 23:22:49 2024-10-15 23:22:49 2024-10-22 10:14:11 | | | | | |
33 license.txt 19.45KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-21 23:28:43 | | | | | |
34 fish.pdf 512.59KB 2022-11-18 23:38:53 2014-06-26 22:43:50 2024-10-22 14:37:59 | | | | | |
35 hacked.html 0B 2024-09-24 15:43:35 2024-09-24 15:43:35 2024-10-22 18:17:41 | | | | | |
36 wp-signup.php 33.58KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-22 12:25:39 | | | | | |
37 kodi.exe 62.08MB 2022-03-30 02:01:46 2021-04-18 16:18:14 2024-10-22 17:47:41 | | | | | |
38 wp-cron.php 5.51KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-21 23:28:54 | | | | | |
39 kodi64.exe 65.94MB 2022-03-30 02:01:47 2021-04-18 16:24:10 2024-10-22 17:35:58 | | | | | |
40 remote.exe 30.89MB 2024-07-05 18:22:18 2024-07-03 18:22:32 2024-10-22 09:24:54 | | | | | |
41 pcdoneright_net_key.txt 1.66KB 2022-11-18 23:38:53 2020-02-20 02:03:22 2024-10-22 14:44:56 | | | | | |
42 xmlrpc.php 3.17KB 2024-09-16 00:32:01 2024-09-16 00:32:01 2024-10-22 10:08:30 | | | | | |
43 ind.html%00.txt 0B 2024-09-23 22:29:04 2024-09-23 22:29:04 2024-09-23 22:29:04 | | | | | |
44 avalons 685.45MB 2024-10-15 04:16:04 2022-11-01 07:27:08 2024-10-22 13:41:15 | | | | |
45 websites 3.04GB 2024-10-15 04:16:04 2022-01-26 09:55:23 2024-10-22 10:01:19 | | | | |
46 domains 495B 2022-09-06 01:01:27 2018-09-13 17:39:25 2024-10-22 17:24:15 | | | | |
47 databases 0B 2022-09-06 01:01:27 2019-01-12 20:06:33 2024-10-21 22:49:52 | | | | |
48 rss 1.14KB 2022-09-06 01:01:27 2014-07-23 07:37:40 2024-10-22 05:33:20 | | | | |
49 wp 220.52MB 2022-11-01 07:26:00 2022-11-01 07:26:00 2024-10-22 05:33:20 | | | | |
50 pdrplayer.com 229.31MB 2024-10-15 04:16:04 2020-07-27 20:02:32 2024-10-22 13:42:24 | | | | |
51 .well-known 273B 2022-09-06 01:01:29 2020-02-19 20:07:02 2024-10-22 01:30:23 | | | | |
52 xbmc 462.58MB 2022-09-06 01:01:29 2017-01-31 14:30:36 2024-10-22 05:33:20 | | | | |
53 temp 579.01MB 2022-09-06 01:01:29 2021-07-19 21:24:17 2024-10-21 22:45:37 | | | | |
54 fix 127B 2024-08-09 15:03:36 2024-08-09 15:03:36 2024-10-22 05:33:20 | | | | |
55 .tmb 4.61KB 2024-08-06 00:46:22 2024-07-29 19:55:40 2024-10-22 05:33:20 | | | | |
56 extracte_wordprees 1.97MB 2024-10-12 11:33:44 2024-10-12 11:33:44 2024-10-21 23:29:15 | | | | |
57 support 303B 2022-09-06 01:01:29 2020-09-29 16:27:06 2024-10-22 03:53:50 | | | | |
58 cgi-bin 56.89KB 2022-09-06 01:01:29 2017-09-12 01:42:36 2024-10-22 05:33:20 | | | | |
59 wp-admin 8.65MB 2024-09-16 00:31:54 2024-09-16 00:31:54 2024-10-22 04:59:59 | | | | |
60 files 28.44GB 2023-07-31 19:19:26 2023-07-31 19:19:26 2024-10-22 05:33:20 | | | | |
61 emails 77B 2024-10-15 04:16:04 2019-04-29 15:39:08 2024-10-22 13:07:25 | | | | |
62 wp-includes 46.54MB 2024-09-16 00:32:02 2024-09-16 00:32:02 2024-10-21 22:31:22 | | | | |
63 pdrsupport 97.33MB 2022-09-06 01:01:29 2020-09-29 16:27:13 2024-10-22 16:51:14 | | | | |
64 TEST640.txt 5B 2022-09-06 01:01:29 2017-06-19 02:40:22 2024-10-22 00:14:49 | | | | |
65 wp-content 162.24MB 2024-09-16 00:35:45 2024-09-16 00:35:45 2024-10-22 05:33:20 | | | | |
66 fix'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 0B 2024-07-31 10:56:45 2024-07-31 10:56:45 2024-10-22 05:33:20 | | | | |
67 pdrplayer 519.66MB 2024-10-15 04:16:04 2022-01-26 09:55:25 2024-10-22 15:38:30 | | | | |
68 create 0B 2024-10-15 04:16:04 2022-01-26 09:55:25 2024-10-22 09:42:36 | | | | |
69 logs 9B 2022-09-06 01:01:29 2017-06-19 03:42:45 2024-10-21 22:48:19 | | | | |