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 | Post SMTP Mailer/Email Log |
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; }
|