X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..fef8173b8c3bad08f495551e43cfdeac1cae6021:/wp-mail.php diff --git a/wp-mail.php b/wp-mail.php index 2966dc36..69b54156 100644 --- a/wp-mail.php +++ b/wp-mail.php @@ -10,20 +10,43 @@ /** Make sure that the WordPress bootstrap has run before continuing. */ require(dirname(__FILE__) . '/wp-load.php'); +if ( ! apply_filters( 'enable_post_by_email_configuration', true ) ) + wp_die( __( 'This action has been disabled by the administrator.' ) ); + +/** Allow a plugin to do a complete takeover of Post by Email **/ +do_action('wp-mail.php'); + /** Get the POP3 class with which to access the mailbox. */ require_once( ABSPATH . WPINC . '/class-pop3.php' ); -$time_difference = absint(get_option('gmt_offset')) * 3600; +/** Only check at this interval for new messages. */ +if ( !defined('WP_MAIL_INTERVAL') ) + define('WP_MAIL_INTERVAL', 300); // 5 minutes + +$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', true, WP_MAIL_INTERVAL); + +$time_difference = get_option('gmt_offset') * 3600; $phone_delim = '::'; $pop3 = new POP3(); -if ( ! $pop3->connect(get_option('mailserver_url'), get_option('mailserver_port') ) || - ! $pop3->user(get_option('mailserver_login')) || - ( ! $count = $pop3->pass(get_option('mailserver_pass')) ) ) { - $pop3->quit(); - wp_die( ( 0 === $count ) ? __("There doesn't seem to be any new mail.") : wp_specialchars($pop3->ERROR) ); +if ( !$pop3->connect( get_option('mailserver_url'), get_option('mailserver_port') ) || !$pop3->user( get_option('mailserver_login') ) ) + wp_die( esc_html( $pop3->ERROR ) ); + +$count = $pop3->pass( get_option('mailserver_pass') ); + +if( false === $count ) + wp_die( esc_html( $pop3->ERROR ) ); + +if( 0 === $count ) { + $pop3->quit(); + wp_die( __('There doesn’t seem to be any new mail.') ); } for ( $i = 1; $i <= $count; $i++ ) { @@ -156,6 +179,10 @@ for ( $i = 1; $i <= $count; $i++ ) { } $content = trim($content); + //Give Post-By-Email extending plugins full access to the content + //Either the raw content or the content of the last quoted-printable section + $content = apply_filters('wp_mail_original_content', $content); + if ( false !== stripos($content_transfer_encoding, "quoted-printable") ) { $content = quoted_printable_decode($content); } @@ -191,11 +218,11 @@ for ( $i = 1; $i <= $count; $i++ ) { do_action('publish_phone', $post_ID); - echo "\n

" . sprintf(__('Author: %s'), wp_specialchars($post_author)) . '

'; - echo "\n

" . sprintf(__('Posted title: %s'), wp_specialchars($post_title)) . '

'; + echo "\n

" . sprintf(__('Author: %s'), esc_html($post_author)) . '

'; + echo "\n

" . sprintf(__('Posted title: %s'), esc_html($post_title)) . '

'; if(!$pop3->delete($i)) { - echo '

' . sprintf(__('Oops: %s'), wp_specialchars($pop3->ERROR)) . '

'; + echo '

' . sprintf(__('Oops: %s'), esc_html($pop3->ERROR)) . '

'; $pop3->reset(); exit; } else {