Version Description
- 2021-02-11
- Fixed: Security issue - nonce validation.
- Fixed: Class PostmanViewController not found
- New: New wp-config.php constant to disable the email logger
Download this release
Release Info
| Developer | yehudah |
| Plugin | |
| Version | 2.0.21 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.20 to 2.0.21
- Postman/Postman-Email-Log/PostmanEmailLogController.php +23 -8
- Postman/Postman-Email-Log/PostmanEmailLogView.php +5 -11
- Postman/Postman-Mail/Zend-1.12.10/Mail/Transport/Abstract.php +5 -1
- Postman/Postman.php +3 -3
- Postman/PostmanInputSanitizer.php +2 -0
- Postman/PostmanOptions.php +11 -5
- Postman/PostmanViewController.php +1 -2
- postman-smtp.php +4 -4
- readme.txt +13 -9
- script/postman.js +13 -3
- style/feeds.css +93 -0
Postman/Postman-Email-Log/PostmanEmailLogController.php
CHANGED
|
@@ -48,9 +48,10 @@ class PostmanEmailLogController {
|
|
| 48 |
$this,
|
| 49 |
'on_admin_init',
|
| 50 |
) );
|
|
|
|
| 51 |
|
|
|
|
| 52 |
|
| 53 |
-
}
|
| 54 |
if ( is_admin() ) {
|
| 55 |
$actionName = self::RESEND_MAIL_AJAX_SLUG;
|
| 56 |
$fullname = 'wp_ajax_' . $actionName;
|
|
@@ -62,6 +63,18 @@ class PostmanEmailLogController {
|
|
| 62 |
}
|
| 63 |
}
|
| 64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
/**
|
| 66 |
*/
|
| 67 |
function on_admin_init() {
|
|
@@ -76,10 +89,15 @@ class PostmanEmailLogController {
|
|
| 76 |
}
|
| 77 |
|
| 78 |
function handleCsvExport() {
|
| 79 |
-
|
| 80 |
-
|
|
|
|
| 81 |
|
| 82 |
-
if ( isset( $
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
$args = array(
|
| 84 |
'post_type' => PostmanEmailLogPostType::POSTMAN_CUSTOM_POST_TYPE_SLUG,
|
| 85 |
'post_status' => PostmanEmailLogService::POSTMAN_CUSTOM_POST_STATUS_PRIVATE,
|
|
@@ -467,10 +485,7 @@ class PostmanEmailLogController {
|
|
| 467 |
</div>
|
| 468 |
|
| 469 |
</div>
|
| 470 |
-
<div class="error"
|
| 471 |
-
<strong>For more advanced, better performance and UI Email logger check our new extension:</strong><br><br>
|
| 472 |
-
<a style="font-weight: bold;" target="_blank" href="https://postmansmtp.com/extensions/better-email-logger-post-smtp-extension/">Better Email Logger</a>
|
| 473 |
-
</div>
|
| 474 |
</form>
|
| 475 |
|
| 476 |
<!-- Forms are NOT created automatically, so you need to wrap the table in one to use features like bulk actions -->
|
| 48 |
$this,
|
| 49 |
'on_admin_init',
|
| 50 |
) );
|
| 51 |
+
}
|
| 52 |
|
| 53 |
+
add_action( 'wp_ajax_post_smtp_log_trash_all', array( $this, 'post_smtp_log_trash_all' ) );
|
| 54 |
|
|
|
|
| 55 |
if ( is_admin() ) {
|
| 56 |
$actionName = self::RESEND_MAIL_AJAX_SLUG;
|
| 57 |
$fullname = 'wp_ajax_' . $actionName;
|
| 63 |
}
|
| 64 |
}
|
| 65 |
|
| 66 |
+
function post_smtp_log_trash_all() {
|
| 67 |
+
check_admin_referer('post-smtp', 'security' );
|
| 68 |
+
|
| 69 |
+
if ( ! current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
|
| 70 |
+
wp_send_json_error( 'No permissions to manage Post SMTP logs.');
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
$purger = new PostmanEmailLogPurger();
|
| 74 |
+
$purger->removeAll();
|
| 75 |
+
wp_send_json_success();
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
/**
|
| 79 |
*/
|
| 80 |
function on_admin_init() {
|
| 89 |
}
|
| 90 |
|
| 91 |
function handleCsvExport() {
|
| 92 |
+
if ( ! isset( $_GET['postman_export_csv'] ) ) {
|
| 93 |
+
return;
|
| 94 |
+
}
|
| 95 |
|
| 96 |
+
if ( ! isset( $_REQUEST['post-smtp-log-nonce'] ) || ! wp_verify_nonce( $_REQUEST['post-smtp-log-nonce'], 'post-smtp' ) ) {
|
| 97 |
+
wp_die( 'Security check' );
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
if ( current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
|
| 101 |
$args = array(
|
| 102 |
'post_type' => PostmanEmailLogPostType::POSTMAN_CUSTOM_POST_TYPE_SLUG,
|
| 103 |
'post_status' => PostmanEmailLogService::POSTMAN_CUSTOM_POST_STATUS_PRIVATE,
|
| 485 |
</div>
|
| 486 |
|
| 487 |
</div>
|
| 488 |
+
<div class="error">Please notice: when you select a date for example 11/20/2017, behind the scene the query select <b>11/20/2017 00:00:00</b>.<br>So if you searching for an email arrived that day at any hour you need to select 11/20/2017 as the <b>From Date</b> and 11/21/2017 as the <b>To Date</b>.</div>
|
|
|
|
|
|
|
|
|
|
| 489 |
</form>
|
| 490 |
|
| 491 |
<!-- Forms are NOT created automatically, so you need to wrap the table in one to use features like bulk actions -->
|
Postman/Postman-Email-Log/PostmanEmailLogView.php
CHANGED
|
@@ -265,10 +265,12 @@ class PostmanEmailLogView extends WP_List_Table {
|
|
| 265 |
* ************************************************************************
|
| 266 |
*/
|
| 267 |
function prepare_items() {
|
| 268 |
-
if ( isset( $_REQUEST['post-smtp-log-nonce'] ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log-nonce'], 'post-smtp' ) )
|
| 269 |
-
die( 'Security check' );
|
| 270 |
|
| 271 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 272 |
* First, lets decide how many records per page to show
|
| 273 |
*/
|
| 274 |
$per_page = isset( $_GET['postman_page_records'] ) ? absint( $_GET['postman_page_records'] ) : 10;
|
|
@@ -355,14 +357,6 @@ class PostmanEmailLogView extends WP_List_Table {
|
|
| 355 |
}
|
| 356 |
$posts = new WP_query( $args );
|
| 357 |
|
| 358 |
-
if ( isset( $_GET['postman_trash_all'] ) && current_user_can(Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
|
| 359 |
-
foreach ( $posts->posts as $post ) {
|
| 360 |
-
wp_delete_post( $post->ID, true );
|
| 361 |
-
}
|
| 362 |
-
|
| 363 |
-
$posts->posts = array();
|
| 364 |
-
}
|
| 365 |
-
|
| 366 |
$date_format = get_option( 'date_format' );
|
| 367 |
$time_format = get_option( 'time_format' );
|
| 368 |
|
| 265 |
* ************************************************************************
|
| 266 |
*/
|
| 267 |
function prepare_items() {
|
|
|
|
|
|
|
| 268 |
|
| 269 |
+
if ( ! current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
|
| 270 |
+
wp_die( sprintf( 'You need to add to this user the %s capability. You can try disable and enable the plugin or you can do it with a plugin like `user role editor`.', Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) );
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
/**
|
| 274 |
* First, lets decide how many records per page to show
|
| 275 |
*/
|
| 276 |
$per_page = isset( $_GET['postman_page_records'] ) ? absint( $_GET['postman_page_records'] ) : 10;
|
| 357 |
}
|
| 358 |
$posts = new WP_query( $args );
|
| 359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 360 |
$date_format = get_option( 'date_format' );
|
| 361 |
$time_format = get_option( 'time_format' );
|
| 362 |
|
Postman/Postman-Mail/Zend-1.12.10/Mail/Transport/Abstract.php
CHANGED
|
@@ -277,7 +277,11 @@ abstract class Postman_Zend_Mail_Transport_Abstract
|
|
| 277 |
}
|
| 278 |
|
| 279 |
if (!$body) {
|
| 280 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
}
|
| 282 |
|
| 283 |
// Get headers
|
| 277 |
}
|
| 278 |
|
| 279 |
if (!$body) {
|
| 280 |
+
/**
|
| 281 |
+
* @see Postman_Zend_Mail_Transport_Exception
|
| 282 |
+
*/
|
| 283 |
+
require_once 'Exception.php';
|
| 284 |
+
throw new Postman_Zend_Mail_Transport_Exception('This email has empty body');
|
| 285 |
}
|
| 286 |
|
| 287 |
// Get headers
|
Postman/Postman.php
CHANGED
|
@@ -70,7 +70,6 @@ class Postman {
|
|
| 70 |
require_once 'Postman-Mail/PostmanMyMailConnector.php';
|
| 71 |
require_once 'Postman-Mail/PostmanContactForm7.php';
|
| 72 |
require_once 'Phpmailer/PostsmtpMailer.php';
|
| 73 |
-
require_once 'Extensions/License/PostmanLicenseManager.php';
|
| 74 |
require_once 'Extensions/Admin/PostmanAdmin.php';
|
| 75 |
//require_once 'Postman-Mail/PostmanWooCommerce.php';
|
| 76 |
|
|
@@ -198,8 +197,6 @@ class Postman {
|
|
| 198 |
// register the email transports
|
| 199 |
$this->registerTransports( $this->rootPluginFilenameAndPath );
|
| 200 |
|
| 201 |
-
PostmanLicenseManager::get_instance()->init();
|
| 202 |
-
|
| 203 |
// load the text domain
|
| 204 |
$this->loadTextDomain();
|
| 205 |
|
|
@@ -270,6 +267,9 @@ class Postman {
|
|
| 270 |
require_once 'Postman-Configuration/PostmanConfigurationController.php';
|
| 271 |
require_once 'Postman-Send-Test-Email/PostmanSendTestEmailController.php';
|
| 272 |
require_once 'Postman-Diagnostic-Test/PostmanDiagnosticTestController.php';
|
|
|
|
|
|
|
|
|
|
| 273 |
|
| 274 |
// create and store an instance of the MessageHandler
|
| 275 |
$this->messageHandler = new PostmanMessageHandler();
|
| 70 |
require_once 'Postman-Mail/PostmanMyMailConnector.php';
|
| 71 |
require_once 'Postman-Mail/PostmanContactForm7.php';
|
| 72 |
require_once 'Phpmailer/PostsmtpMailer.php';
|
|
|
|
| 73 |
require_once 'Extensions/Admin/PostmanAdmin.php';
|
| 74 |
//require_once 'Postman-Mail/PostmanWooCommerce.php';
|
| 75 |
|
| 197 |
// register the email transports
|
| 198 |
$this->registerTransports( $this->rootPluginFilenameAndPath );
|
| 199 |
|
|
|
|
|
|
|
| 200 |
// load the text domain
|
| 201 |
$this->loadTextDomain();
|
| 202 |
|
| 267 |
require_once 'Postman-Configuration/PostmanConfigurationController.php';
|
| 268 |
require_once 'Postman-Send-Test-Email/PostmanSendTestEmailController.php';
|
| 269 |
require_once 'Postman-Diagnostic-Test/PostmanDiagnosticTestController.php';
|
| 270 |
+
require_once 'Extensions/License/PostmanLicenseManager.php';
|
| 271 |
+
|
| 272 |
+
PostmanLicenseManager::get_instance()->init();
|
| 273 |
|
| 274 |
// create and store an instance of the MessageHandler
|
| 275 |
$this->messageHandler = new PostmanMessageHandler();
|
Postman/PostmanInputSanitizer.php
CHANGED
|
@@ -20,6 +20,7 @@ if ( ! class_exists( 'PostmanInputSanitizer' ) ) {
|
|
| 20 |
* Contains all settings fields as array keys
|
| 21 |
*/
|
| 22 |
public function sanitize( $input ) {
|
|
|
|
| 23 |
$this->logger->debug( 'Sanitizing data before storage' );
|
| 24 |
|
| 25 |
$new_input = array();
|
|
@@ -124,6 +125,7 @@ if ( ! class_exists( 'PostmanInputSanitizer' ) ) {
|
|
| 124 |
* @param mixed $new_input
|
| 125 |
*/
|
| 126 |
public function sanitizePassword( $desc, $key, $input, &$new_input, $existingPassword ) {
|
|
|
|
| 127 |
// WordPress calling Sanitize twice is a known issue
|
| 128 |
// https://core.trac.wordpress.org/ticket/21989
|
| 129 |
$action = PostmanSession::getInstance()->getAction();
|
| 20 |
* Contains all settings fields as array keys
|
| 21 |
*/
|
| 22 |
public function sanitize( $input ) {
|
| 23 |
+
|
| 24 |
$this->logger->debug( 'Sanitizing data before storage' );
|
| 25 |
|
| 26 |
$new_input = array();
|
| 125 |
* @param mixed $new_input
|
| 126 |
*/
|
| 127 |
public function sanitizePassword( $desc, $key, $input, &$new_input, $existingPassword ) {
|
| 128 |
+
|
| 129 |
// WordPress calling Sanitize twice is a known issue
|
| 130 |
// https://core.trac.wordpress.org/ticket/21989
|
| 131 |
$action = PostmanSession::getInstance()->getAction();
|
Postman/PostmanOptions.php
CHANGED
|
@@ -192,6 +192,10 @@ if ( ! class_exists( 'PostmanOptions' ) ) {
|
|
| 192 |
return ! isset( $this->options [ PostmanOptions::TRANSPORT_TYPE ] );
|
| 193 |
}
|
| 194 |
public function isMailLoggingEnabled() {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
$allowed = $this->isMailLoggingAllowed();
|
| 196 |
$enabled = $this->getMailLoggingEnabled() == self::MAIL_LOG_ENABLED_OPTION_YES;
|
| 197 |
return $allowed && $enabled;
|
|
@@ -212,13 +216,15 @@ if ( ! class_exists( 'PostmanOptions' ) ) {
|
|
| 212 |
public function getMailLoggingEnabled() {
|
| 213 |
if ( isset( $this->options [ PostmanOptions::MAIL_LOG_ENABLED_OPTION ] ) ) {
|
| 214 |
return $this->options [ PostmanOptions::MAIL_LOG_ENABLED_OPTION ];
|
| 215 |
-
} else {
|
|
|
|
|
|
|
| 216 |
}
|
| 217 |
public function getRunMode() {
|
| 218 |
if ( defined( 'POST_SMTP_RUN_MODE' ) ) {
|
| 219 |
return POST_SMTP_RUN_MODE;
|
| 220 |
}
|
| 221 |
-
|
| 222 |
if ( isset( $this->options [ self::RUN_MODE ] ) ) {
|
| 223 |
return $this->options [ self::RUN_MODE ];
|
| 224 |
} else { return self::DEFAULT_RUN_MODE; }
|
|
@@ -436,7 +442,7 @@ if ( ! class_exists( 'PostmanOptions' ) ) {
|
|
| 436 |
if ( defined( 'POST_SMTP_API_KEY' ) ) {
|
| 437 |
return POST_SMTP_API_KEY;
|
| 438 |
}
|
| 439 |
-
|
| 440 |
if ( isset( $this->options [ PostmanOptions::MANDRILL_API_KEY ] ) ) {
|
| 441 |
return base64_decode( $this->options [ PostmanOptions::MANDRILL_API_KEY ] ); }
|
| 442 |
}
|
|
@@ -467,7 +473,7 @@ if ( ! class_exists( 'PostmanOptions' ) ) {
|
|
| 467 |
return $this->options [ PostmanOptions::MAILGUN_REGION ];
|
| 468 |
}
|
| 469 |
}
|
| 470 |
-
|
| 471 |
public function getReplyTo() {
|
| 472 |
if ( isset( $this->options [ PostmanOptions::REPLY_TO ] ) ) {
|
| 473 |
return $this->options [ PostmanOptions::REPLY_TO ]; }
|
|
@@ -493,7 +499,7 @@ if ( ! class_exists( 'PostmanOptions' ) ) {
|
|
| 493 |
if ( isset( $this->options [ PostmanOptions::DISABLE_EMAIL_VALIDAITON ] ) ) {
|
| 494 |
return $this->options [ PostmanOptions::DISABLE_EMAIL_VALIDAITON ]; }
|
| 495 |
}
|
| 496 |
-
|
| 497 |
/**
|
| 498 |
* (non-PHPdoc)
|
| 499 |
*
|
| 192 |
return ! isset( $this->options [ PostmanOptions::TRANSPORT_TYPE ] );
|
| 193 |
}
|
| 194 |
public function isMailLoggingEnabled() {
|
| 195 |
+
if ( defined( 'POST_SMTP_CORE_MAIL_LOG' ) ) {
|
| 196 |
+
return POST_SMTP_CORE_MAIL_LOG;
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
$allowed = $this->isMailLoggingAllowed();
|
| 200 |
$enabled = $this->getMailLoggingEnabled() == self::MAIL_LOG_ENABLED_OPTION_YES;
|
| 201 |
return $allowed && $enabled;
|
| 216 |
public function getMailLoggingEnabled() {
|
| 217 |
if ( isset( $this->options [ PostmanOptions::MAIL_LOG_ENABLED_OPTION ] ) ) {
|
| 218 |
return $this->options [ PostmanOptions::MAIL_LOG_ENABLED_OPTION ];
|
| 219 |
+
} else {
|
| 220 |
+
return self::DEFAULT_MAIL_LOG_ENABLED;
|
| 221 |
+
}
|
| 222 |
}
|
| 223 |
public function getRunMode() {
|
| 224 |
if ( defined( 'POST_SMTP_RUN_MODE' ) ) {
|
| 225 |
return POST_SMTP_RUN_MODE;
|
| 226 |
}
|
| 227 |
+
|
| 228 |
if ( isset( $this->options [ self::RUN_MODE ] ) ) {
|
| 229 |
return $this->options [ self::RUN_MODE ];
|
| 230 |
} else { return self::DEFAULT_RUN_MODE; }
|
| 442 |
if ( defined( 'POST_SMTP_API_KEY' ) ) {
|
| 443 |
return POST_SMTP_API_KEY;
|
| 444 |
}
|
| 445 |
+
|
| 446 |
if ( isset( $this->options [ PostmanOptions::MANDRILL_API_KEY ] ) ) {
|
| 447 |
return base64_decode( $this->options [ PostmanOptions::MANDRILL_API_KEY ] ); }
|
| 448 |
}
|
| 473 |
return $this->options [ PostmanOptions::MAILGUN_REGION ];
|
| 474 |
}
|
| 475 |
}
|
| 476 |
+
|
| 477 |
public function getReplyTo() {
|
| 478 |
if ( isset( $this->options [ PostmanOptions::REPLY_TO ] ) ) {
|
| 479 |
return $this->options [ PostmanOptions::REPLY_TO ]; }
|
| 499 |
if ( isset( $this->options [ PostmanOptions::DISABLE_EMAIL_VALIDAITON ] ) ) {
|
| 500 |
return $this->options [ PostmanOptions::DISABLE_EMAIL_VALIDAITON ]; }
|
| 501 |
}
|
| 502 |
+
|
| 503 |
/**
|
| 504 |
* (non-PHPdoc)
|
| 505 |
*
|
Postman/PostmanViewController.php
CHANGED
|
@@ -381,7 +381,6 @@ if ( ! class_exists( 'PostmanViewController' ) ) {
|
|
| 381 |
<div class="ps-welcome-panel-column">
|
| 382 |
<h4><img class="align-middle" src="<?php echo plugins_url( 'style/images/new.gif', dirname( __DIR__ ) . '/postman-smtp.php' ); ?>"><a style="color: black;" target="_blank" href="https://postmansmtp.com/extensions/">Extensions</a></h4>
|
| 383 |
<ul>
|
| 384 |
-
<li><a style="font-weight: bold;" target="_blank" href="https://postmansmtp.com/extensions/better-email-logger-post-smtp-extension/">Better Email Logger</a></li>
|
| 385 |
<li><a target="_blank" href="https://postmansmtp.com/extensions/office-365-for-post-smtp-extension/">Office 365 API</a></li>
|
| 386 |
<li><a target="_blank" href="https://postmansmtp.com/extensions/post-smtp-extension-for-amazon-ses/">Amazon SES</a></li>
|
| 387 |
</ul>
|
|
@@ -397,7 +396,7 @@ if ( ! class_exists( 'PostmanViewController' ) ) {
|
|
| 397 |
printf( '<li><a href="%s" data-security="%s" class="welcome-icon release-lock-file">%s</a></li>', '#', wp_create_nonce( "postman" ), __( 'Release Lock File Error', 'post-smtp' ) );
|
| 398 |
printf( '<li><a href="https://wordpress.org/support/plugin/post-smtp/" class="welcome-icon postman_support">%s</a></li>', __( 'Online Support', 'post-smtp' ) );
|
| 399 |
printf( '<li><a target="blank" class="align-middle" href="https://www.facebook.com/groups/post.smtp" class="welcome-icon postman_guides">%s</a></li>', __( 'Facebook Group', 'post-smtp' ) );
|
| 400 |
-
|
| 401 |
print '</ul></div></div></div></div>';
|
| 402 |
?>
|
| 403 |
</div>
|
| 381 |
<div class="ps-welcome-panel-column">
|
| 382 |
<h4><img class="align-middle" src="<?php echo plugins_url( 'style/images/new.gif', dirname( __DIR__ ) . '/postman-smtp.php' ); ?>"><a style="color: black;" target="_blank" href="https://postmansmtp.com/extensions/">Extensions</a></h4>
|
| 383 |
<ul>
|
|
|
|
| 384 |
<li><a target="_blank" href="https://postmansmtp.com/extensions/office-365-for-post-smtp-extension/">Office 365 API</a></li>
|
| 385 |
<li><a target="_blank" href="https://postmansmtp.com/extensions/post-smtp-extension-for-amazon-ses/">Amazon SES</a></li>
|
| 386 |
</ul>
|
| 396 |
printf( '<li><a href="%s" data-security="%s" class="welcome-icon release-lock-file">%s</a></li>', '#', wp_create_nonce( "postman" ), __( 'Release Lock File Error', 'post-smtp' ) );
|
| 397 |
printf( '<li><a href="https://wordpress.org/support/plugin/post-smtp/" class="welcome-icon postman_support">%s</a></li>', __( 'Online Support', 'post-smtp' ) );
|
| 398 |
printf( '<li><a target="blank" class="align-middle" href="https://www.facebook.com/groups/post.smtp" class="welcome-icon postman_guides">%s</a></li>', __( 'Facebook Group', 'post-smtp' ) );
|
| 399 |
+
printf( '<li><a target="blank" class="align-middle" href="https://postmansmtp.com/category/guides/" class="welcome-icon postman_guides">%s</a></li>', __( 'Guides', 'post-smtp' ) );
|
| 400 |
print '</ul></div></div></div></div>';
|
| 401 |
?>
|
| 402 |
</div>
|
postman-smtp.php
CHANGED
|
@@ -6,7 +6,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 6 |
* Plugin Name: Post SMTP
|
| 7 |
* Plugin URI: https://wordpress.org/plugins/post-smtp/
|
| 8 |
* Description: Email not reliable? Post SMTP is the first and only WordPress SMTP plugin to implement OAuth 2.0 for Gmail, Hotmail and Yahoo Mail. Setup is a breeze with the Configuration Wizard and integrated Port Tester. Enjoy worry-free delivery even if your password changes!
|
| 9 |
-
* Version: 2.0.
|
| 10 |
* Author: Yehuda Hassine
|
| 11 |
* Text Domain: post-smtp
|
| 12 |
* Author URI: https://postmansmtp.com
|
|
@@ -35,10 +35,10 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 35 |
define( 'POST_SMTP_BASE', __FILE__ );
|
| 36 |
define( 'POST_SMTP_PATH', __DIR__ );
|
| 37 |
define( 'POST_SMTP_URL', plugins_url('', POST_SMTP_BASE ) );
|
| 38 |
-
define( 'POST_SMTP_VER', '2.0.
|
| 39 |
define( 'POST_SMTP_SHOW_RELEASE_MESSAGE', true );
|
| 40 |
-
define( 'POST_SMTP_RELEASE_MESSAGE', "
|
| 41 |
-
define( 'POST_SMTP_RELEASE_URL', 'https://
|
| 42 |
|
| 43 |
$postman_smtp_exist = in_array( 'postman-smtp/postman-smtp.php', (array) get_option( 'active_plugins', array() ) );
|
| 44 |
$required_php_version = version_compare( PHP_VERSION, '5.6.0', '<' );
|
| 6 |
* Plugin Name: Post SMTP
|
| 7 |
* Plugin URI: https://wordpress.org/plugins/post-smtp/
|
| 8 |
* Description: Email not reliable? Post SMTP is the first and only WordPress SMTP plugin to implement OAuth 2.0 for Gmail, Hotmail and Yahoo Mail. Setup is a breeze with the Configuration Wizard and integrated Port Tester. Enjoy worry-free delivery even if your password changes!
|
| 9 |
+
* Version: 2.0.21
|
| 10 |
* Author: Yehuda Hassine
|
| 11 |
* Text Domain: post-smtp
|
| 12 |
* Author URI: https://postmansmtp.com
|
| 35 |
define( 'POST_SMTP_BASE', __FILE__ );
|
| 36 |
define( 'POST_SMTP_PATH', __DIR__ );
|
| 37 |
define( 'POST_SMTP_URL', plugins_url('', POST_SMTP_BASE ) );
|
| 38 |
+
define( 'POST_SMTP_VER', '2.0.21' );
|
| 39 |
define( 'POST_SMTP_SHOW_RELEASE_MESSAGE', true );
|
| 40 |
+
define( 'POST_SMTP_RELEASE_MESSAGE', "Security fix and more." );
|
| 41 |
+
define( 'POST_SMTP_RELEASE_URL', 'https://wordpress.org/plugins/post-smtp/#developers' );
|
| 42 |
|
| 43 |
$postman_smtp_exist = in_array( 'postman-smtp/postman-smtp.php', (array) get_option( 'active_plugins', array() ) );
|
| 44 |
$required_php_version = version_compare( PHP_VERSION, '5.6.0', '<' );
|
readme.txt
CHANGED
|
@@ -4,15 +4,15 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=yehudaha
|
|
| 4 |
Tags: postman smtp, postman, smtp, email, mail, mailer, email log, oauth2, gmail, google apps, hotmail, yahoo, mandrill api, sendgrid api, elastic email, office365, mailgun
|
| 5 |
Requires at least: 3.9
|
| 6 |
Tested up to: 5.6
|
| 7 |
-
Stable tag: 2.0.
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 11 |
-
Send, log and
|
| 12 |
|
| 13 |
== Description ==
|
| 14 |
|
| 15 |
-
= Looking for Office 365
|
| 16 |
Check this extensions page, it will update with more extensions so don't forget to follow:
|
| 17 |
[https://postmansmtp.com/extensions/](https://postmansmtp.com/extensions/)
|
| 18 |
|
|
@@ -281,16 +281,20 @@ To avoid being flagged as spam, you need to prove your email isn't forged. On a
|
|
| 281 |
|
| 282 |
== Changelog ==
|
| 283 |
|
| 284 |
-
= 2.0.
|
| 285 |
-
* Fixed:
|
| 286 |
-
* Fixed:
|
| 287 |
-
* New:
|
| 288 |
|
| 289 |
-
= 2.0.
|
| 290 |
* Fixed: All reported office 365 issues.
|
| 291 |
* New: Add link to Amazon SES Extension
|
| 292 |
|
| 293 |
-
= 2.0.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 294 |
* New: Plugin Extensions
|
| 295 |
|
| 296 |
= 2.0.16 - 2020-12-13
|
| 4 |
Tags: postman smtp, postman, smtp, email, mail, mailer, email log, oauth2, gmail, google apps, hotmail, yahoo, mandrill api, sendgrid api, elastic email, office365, mailgun
|
| 5 |
Requires at least: 3.9
|
| 6 |
Tested up to: 5.6
|
| 7 |
+
Stable tag: 2.0.21
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 11 |
+
Send, log, and get notified when your emails are failing. Plus a unique option for secondary backup SMTP so your emails will never stop. Supports everything: SMTP, Gmail, Mailgun, office365, SendGrid, Elastic Email and OAuth 2.0!
|
| 12 |
|
| 13 |
== Description ==
|
| 14 |
|
| 15 |
+
= Looking for Office 365 API delivery? =
|
| 16 |
Check this extensions page, it will update with more extensions so don't forget to follow:
|
| 17 |
[https://postmansmtp.com/extensions/](https://postmansmtp.com/extensions/)
|
| 18 |
|
| 281 |
|
| 282 |
== Changelog ==
|
| 283 |
|
| 284 |
+
= 2.0.21 - 2021-02-11
|
| 285 |
+
* Fixed: Security issue - nonce validation.
|
| 286 |
+
* Fixed: Class ‘PostmanViewController’ not found
|
| 287 |
+
* New: New wp-config.php constant to disable the email logger = `POST_SMTP_CORE_MAIL_LOG`.
|
| 288 |
|
| 289 |
+
= 2.0.20 - 2021-01-19
|
| 290 |
* Fixed: All reported office 365 issues.
|
| 291 |
* New: Add link to Amazon SES Extension
|
| 292 |
|
| 293 |
+
= 2.0.19 - 2021-01-19
|
| 294 |
+
* Fixed: All reported office 365 issues.
|
| 295 |
+
* New: Add link to Amazon SES Extension
|
| 296 |
+
|
| 297 |
+
= 2.0.18 - 2021-01-17
|
| 298 |
* New: Plugin Extensions
|
| 299 |
|
| 300 |
= 2.0.16 - 2020-12-13
|
script/postman.js
CHANGED
|
@@ -36,11 +36,21 @@ jQuery(document).ready(function($) {
|
|
| 36 |
});
|
| 37 |
|
| 38 |
$('#postman_trash_all').on('click',function(e) {
|
| 39 |
-
|
| 40 |
-
e.preventDefault();
|
| 41 |
|
|
|
|
| 42 |
return false;
|
| 43 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
});
|
| 45 |
|
| 46 |
$('.release-lock-file').on('click', function(e) {
|
|
@@ -301,4 +311,4 @@ function postmanValidateAjaxResponseWithPopup(response) {
|
|
| 301 |
return false;
|
| 302 |
}
|
| 303 |
return true;
|
| 304 |
-
}
|
| 36 |
});
|
| 37 |
|
| 38 |
$('#postman_trash_all').on('click',function(e) {
|
| 39 |
+
e.preventDefault();
|
|
|
|
| 40 |
|
| 41 |
+
if (confirm("Are You Sure?") == false) {
|
| 42 |
return false;
|
| 43 |
}
|
| 44 |
+
|
| 45 |
+
let security = $('#post-smtp-log-nonce').val();
|
| 46 |
+
|
| 47 |
+
$.post(ajaxurl, {action: 'post_smtp_log_trash_all', security: security}, function(result) {
|
| 48 |
+
if ( result.success ) {
|
| 49 |
+
location.reload();
|
| 50 |
+
} else {
|
| 51 |
+
alert(result.data);
|
| 52 |
+
}
|
| 53 |
+
}, 'json');
|
| 54 |
});
|
| 55 |
|
| 56 |
$('.release-lock-file').on('click', function(e) {
|
| 311 |
return false;
|
| 312 |
}
|
| 313 |
return true;
|
| 314 |
+
}
|
style/feeds.css
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#post_smtp_feeds_widget.postbox .inside {
|
| 2 |
+
padding: 0;
|
| 3 |
+
}
|
| 4 |
+
|
| 5 |
+
#post-smtp-dashboard-overview .dashicons {
|
| 6 |
+
vertical-align: middle;
|
| 7 |
+
font-size: 17px; }
|
| 8 |
+
|
| 9 |
+
#post-smtp-dashboard-overview .e-overview__header {
|
| 10 |
+
display: table;
|
| 11 |
+
width: 100%;
|
| 12 |
+
-webkit-box-shadow: 0 5px 8px rgba(0, 0, 0, 0.05);
|
| 13 |
+
box-shadow: 0 5px 8px rgba(0, 0, 0, 0.05);
|
| 14 |
+
margin: 0 -12px 8px;
|
| 15 |
+
padding: 0 12px 12px; }
|
| 16 |
+
|
| 17 |
+
#post-smtp-dashboard-overview .e-overview__logo, #post-smtp-dashboard-overview .e-overview__versions, #post-smtp-dashboard-overview .e-overview__create {
|
| 18 |
+
display: table-cell;
|
| 19 |
+
vertical-align: middle; }
|
| 20 |
+
|
| 21 |
+
#post-smtp-dashboard-overview .e-overview__logo {
|
| 22 |
+
width: 30px; }
|
| 23 |
+
|
| 24 |
+
#post-smtp-dashboard-overview .e-overview__versions {
|
| 25 |
+
padding: 0 10px;
|
| 26 |
+
font-size: 0.9em;
|
| 27 |
+
line-height: 1.5; }
|
| 28 |
+
|
| 29 |
+
#post-smtp-dashboard-overview .e-overview__version {
|
| 30 |
+
display: block; }
|
| 31 |
+
|
| 32 |
+
#post-smtp-dashboard-overview .e-overview__create {
|
| 33 |
+
text-align: right; }
|
| 34 |
+
|
| 35 |
+
#post-smtp-dashboard-overview .e-overview__post {
|
| 36 |
+
margin-top: 10px; }
|
| 37 |
+
|
| 38 |
+
#post-smtp-dashboard-overview .e-overview__post-link {
|
| 39 |
+
display: inline-block; }
|
| 40 |
+
|
| 41 |
+
#post-smtp-dashboard-overview .e-overview__badge {
|
| 42 |
+
background: #39b54a;
|
| 43 |
+
color: white;
|
| 44 |
+
font-size: 0.75em;
|
| 45 |
+
padding: 3px 6px;
|
| 46 |
+
-webkit-border-radius: 3px;
|
| 47 |
+
border-radius: 3px;
|
| 48 |
+
text-transform: uppercase; }
|
| 49 |
+
|
| 50 |
+
#post-smtp-dashboard-overview ul li {
|
| 51 |
+
padding: 5px 10px;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
#post-smtp-dashboard-overview ul li:nth-child(even) {
|
| 55 |
+
background-color: #FAFAFA;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
#post-smtp-dashboard-overview .e-overview__post-description {
|
| 59 |
+
margin: 0 0 1.5em; }
|
| 60 |
+
|
| 61 |
+
#post-smtp-dashboard-overview .e-overview__recently-edited li {
|
| 62 |
+
color: #72777c; }
|
| 63 |
+
|
| 64 |
+
#post-smtp-dashboard-overview .e-overview__feed {
|
| 65 |
+
font-size: 14px;
|
| 66 |
+
font-weight: 500; }
|
| 67 |
+
#post-smtp-dashboard-overview .e-overview__feed .e-overview__post-link {
|
| 68 |
+
padding-bottom: 5px; }
|
| 69 |
+
|
| 70 |
+
#post-smtp-dashboard-overview .e-overview__recently-edited .e-overview__heading, #post-smtp-dashboard-overview .e-overview__feed .e-overview__heading {
|
| 71 |
+
font-weight: 700;
|
| 72 |
+
border-bottom: 1px solid #eee;
|
| 73 |
+
margin: 0 -12px;
|
| 74 |
+
padding: 6px 12px; }
|
| 75 |
+
|
| 76 |
+
#post-smtp-dashboard-overview .e-overview__footer {
|
| 77 |
+
margin: 0 -12px -12px;
|
| 78 |
+
padding: 12px;
|
| 79 |
+
border-top: 1px solid #eee; }
|
| 80 |
+
#post-smtp-dashboard-overview .e-overview__footer ul {
|
| 81 |
+
display: -webkit-box;
|
| 82 |
+
display: -ms-flexbox;
|
| 83 |
+
display: flex;
|
| 84 |
+
list-style: none;
|
| 85 |
+
margin: 0;
|
| 86 |
+
padding: 0; }
|
| 87 |
+
#post-smtp-dashboard-overview .e-overview__footer ul li {
|
| 88 |
+
padding: 0 10px;
|
| 89 |
+
margin: 0;
|
| 90 |
+
border-left: 1px solid #ddd; }
|
| 91 |
+
#post-smtp-dashboard-overview .e-overview__footer ul li:first-child {
|
| 92 |
+
padding-left: 0;
|
| 93 |
+
border: none; }
|
