Version Description
- 2020-01-21
- Fixed: HTML content type
- Fixed: Sendgrid crash when has duplicates recipients (bypass, Sendgrid issue).
- Fixed: Few OAuth undefined notifications
- Fixed: Duplicate Emails - When you have notify and confirm (Ninja forms, etc..)
- Fixed: Logs wp_error convert
Download this release
Release Info
| Developer | yehudah |
| Plugin | |
| Version | 2.0.10 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.9 to 2.0.10
Postman/Phpmailer/PostsmtpMailer.php
CHANGED
|
@@ -15,6 +15,8 @@ add_action('plugins_loaded', function() {
|
|
| 15 |
|
| 16 |
class PostsmtpMailer extends PHPMailer {
|
| 17 |
|
|
|
|
|
|
|
| 18 |
private $options;
|
| 19 |
|
| 20 |
private $error;
|
|
@@ -38,11 +40,23 @@ class PostsmtpMailer extends PHPMailer {
|
|
| 38 |
}
|
| 39 |
|
| 40 |
public function hooks() {
|
|
|
|
| 41 |
if ( $this->options->getTransportType() == 'smtp' ) {
|
| 42 |
add_action( 'phpmailer_init', array( $this, 'phpmailer_smtp_init' ), 999 );
|
| 43 |
}
|
| 44 |
}
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
/**
|
| 47 |
* @param PHPMailer $mail
|
| 48 |
*/
|
|
@@ -76,9 +90,7 @@ class PostsmtpMailer extends PHPMailer {
|
|
| 76 |
$postmanWpMail = new PostmanWpMail();
|
| 77 |
$postmanWpMail->init();
|
| 78 |
|
| 79 |
-
$
|
| 80 |
-
|
| 81 |
-
list($to, $subject, $body, $headers, $attachments) = array_pad( $backtrace[1]['args'], 5, null );
|
| 82 |
|
| 83 |
// build the message
|
| 84 |
$postmanMessage = $postmanWpMail->processWpMailCall( $to, $subject, $body, $headers, $attachments );
|
|
@@ -114,8 +126,6 @@ class PostsmtpMailer extends PHPMailer {
|
|
| 114 |
|
| 115 |
$this->mailHeader = '';
|
| 116 |
|
| 117 |
-
do_action( 'post_smtp_on_failed', $log, $postmanMessage, $this->transcript, $transport, $exc->getMessage() );
|
| 118 |
-
|
| 119 |
$this->setError($exc->getMessage());
|
| 120 |
if ($this->exceptions) {
|
| 121 |
throw $exc;
|
| 15 |
|
| 16 |
class PostsmtpMailer extends PHPMailer {
|
| 17 |
|
| 18 |
+
private $mail_args = array();
|
| 19 |
+
|
| 20 |
private $options;
|
| 21 |
|
| 22 |
private $error;
|
| 40 |
}
|
| 41 |
|
| 42 |
public function hooks() {
|
| 43 |
+
add_filter( 'wp_mail', array( $this, 'get_mail_args' ) );
|
| 44 |
if ( $this->options->getTransportType() == 'smtp' ) {
|
| 45 |
add_action( 'phpmailer_init', array( $this, 'phpmailer_smtp_init' ), 999 );
|
| 46 |
}
|
| 47 |
}
|
| 48 |
|
| 49 |
+
public function get_mail_args( $atts ) {
|
| 50 |
+
$this->mail_args = array();
|
| 51 |
+
$this->mail_args[] = $atts['to'];
|
| 52 |
+
$this->mail_args[] = $atts['subject'];
|
| 53 |
+
$this->mail_args[] = $atts['message'];
|
| 54 |
+
$this->mail_args[] = $atts['headers'];
|
| 55 |
+
$this->mail_args[] = $atts['attachments'];
|
| 56 |
+
|
| 57 |
+
return $atts;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
/**
|
| 61 |
* @param PHPMailer $mail
|
| 62 |
*/
|
| 90 |
$postmanWpMail = new PostmanWpMail();
|
| 91 |
$postmanWpMail->init();
|
| 92 |
|
| 93 |
+
list($to, $subject, $body, $headers, $attachments) = array_pad( $this->mail_args, 5, null );
|
|
|
|
|
|
|
| 94 |
|
| 95 |
// build the message
|
| 96 |
$postmanMessage = $postmanWpMail->processWpMailCall( $to, $subject, $body, $headers, $attachments );
|
| 126 |
|
| 127 |
$this->mailHeader = '';
|
| 128 |
|
|
|
|
|
|
|
| 129 |
$this->setError($exc->getMessage());
|
| 130 |
if ($this->exceptions) {
|
| 131 |
throw $exc;
|
Postman/Postman-Email-Log/PostmanEmailLogService.php
CHANGED
|
@@ -167,8 +167,9 @@ if ( ! class_exists( 'PostmanEmailLogService' ) ) {
|
|
| 167 |
$message = $post_id->get_error_message();
|
| 168 |
|
| 169 |
printf( '<div class="%1$s"><p>%2$s</p></div>', esc_attr( $class ), esc_html( $message ) );
|
| 170 |
-
return;
|
| 171 |
});
|
|
|
|
|
|
|
| 172 |
}
|
| 173 |
|
| 174 |
$this->logger->debug( sprintf( 'Saved message #%s to the database', $post_id ) );
|
| 167 |
$message = $post_id->get_error_message();
|
| 168 |
|
| 169 |
printf( '<div class="%1$s"><p>%2$s</p></div>', esc_attr( $class ), esc_html( $message ) );
|
|
|
|
| 170 |
});
|
| 171 |
+
|
| 172 |
+
return;
|
| 173 |
}
|
| 174 |
|
| 175 |
$this->logger->debug( sprintf( 'Saved message #%s to the database', $post_id ) );
|
Postman/Postman-Mail/PostmanSendGridMailEngine.php
CHANGED
|
@@ -57,9 +57,14 @@ if ( ! class_exists( 'PostmanSendGridMailEngine' ) ) {
|
|
| 57 |
// now log it
|
| 58 |
$sender->log( $this->logger, 'From' );
|
| 59 |
|
|
|
|
|
|
|
| 60 |
// add the to recipients
|
| 61 |
foreach ( ( array ) $message->getToRecipients() as $recipient ) {
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
| 63 |
}
|
| 64 |
|
| 65 |
$email->addTos( $emails );
|
|
@@ -111,16 +116,22 @@ if ( ! class_exists( 'PostmanSendGridMailEngine' ) ) {
|
|
| 111 |
// add the cc recipients
|
| 112 |
$ccEmails = array();
|
| 113 |
foreach ( ( array ) $message->getCcRecipients() as $recipient ) {
|
| 114 |
-
$recipient->
|
| 115 |
-
|
|
|
|
|
|
|
|
|
|
| 116 |
}
|
| 117 |
$email->addCcs($ccEmails);
|
| 118 |
|
| 119 |
// add the bcc recipients
|
| 120 |
$bccEmails = array();
|
| 121 |
foreach ( ( array ) $message->getBccRecipients() as $recipient ) {
|
| 122 |
-
$recipient->
|
| 123 |
-
|
|
|
|
|
|
|
|
|
|
| 124 |
}
|
| 125 |
$email->addBccs($bccEmails);
|
| 126 |
|
| 57 |
// now log it
|
| 58 |
$sender->log( $this->logger, 'From' );
|
| 59 |
|
| 60 |
+
$duplicates = array();
|
| 61 |
+
|
| 62 |
// add the to recipients
|
| 63 |
foreach ( ( array ) $message->getToRecipients() as $recipient ) {
|
| 64 |
+
if ( ! in_array( $recipient->getEmail(), $duplicates ) ) {
|
| 65 |
+
$emails[] = new \SendGrid\Mail\To( $recipient->getEmail(), $recipient->getName() );
|
| 66 |
+
$duplicates[] = $recipient->getEmail();
|
| 67 |
+
}
|
| 68 |
}
|
| 69 |
|
| 70 |
$email->addTos( $emails );
|
| 116 |
// add the cc recipients
|
| 117 |
$ccEmails = array();
|
| 118 |
foreach ( ( array ) $message->getCcRecipients() as $recipient ) {
|
| 119 |
+
if ( ! in_array( $recipient->getEmail(), $duplicates ) ) {
|
| 120 |
+
$recipient->log($this->logger, 'Cc');
|
| 121 |
+
$ccEmails[] = new \SendGrid\Mail\Cc($recipient->getEmail(), $recipient->getName());
|
| 122 |
+
$duplicates[] = $recipient->getEmail();
|
| 123 |
+
}
|
| 124 |
}
|
| 125 |
$email->addCcs($ccEmails);
|
| 126 |
|
| 127 |
// add the bcc recipients
|
| 128 |
$bccEmails = array();
|
| 129 |
foreach ( ( array ) $message->getBccRecipients() as $recipient ) {
|
| 130 |
+
if ( ! in_array( $recipient->getEmail(), $duplicates ) ) {
|
| 131 |
+
$recipient->log($this->logger, 'Bcc');
|
| 132 |
+
$bccEmails[] = new \SendGrid\Mail\Bcc($recipient->getEmail(), $recipient->getName());
|
| 133 |
+
$duplicates[] = $recipient->getEmail();
|
| 134 |
+
}
|
| 135 |
}
|
| 136 |
$email->addBccs($bccEmails);
|
| 137 |
|
Postman/PostmanOAuthToken.php
CHANGED
|
@@ -45,10 +45,26 @@ if (! class_exists ( 'PostmanOAuthToken.php' )) {
|
|
| 45 |
*/
|
| 46 |
private function load() {
|
| 47 |
$a = get_option ( PostmanOAuthToken::OPTIONS_NAME );
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
}
|
| 53 |
|
| 54 |
/**
|
| 45 |
*/
|
| 46 |
private function load() {
|
| 47 |
$a = get_option ( PostmanOAuthToken::OPTIONS_NAME );
|
| 48 |
+
|
| 49 |
+
if ( ! is_array( $a ) ) {
|
| 50 |
+
return;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
if ( isset( $a [PostmanOAuthToken::ACCESS_TOKEN] ) ) {
|
| 54 |
+
$this->setAccessToken ( $a [PostmanOAuthToken::ACCESS_TOKEN] );
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
if ( isset( $a [PostmanOAuthToken::REFRESH_TOKEN] ) ) {
|
| 58 |
+
$this->setRefreshToken($a [PostmanOAuthToken::REFRESH_TOKEN]);
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
if ( isset( $a [PostmanOAuthToken::EXPIRY_TIME] ) ) {
|
| 62 |
+
$this->setExpiryTime($a [PostmanOAuthToken::EXPIRY_TIME]);
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
if ( isset( $a [PostmanOAuthToken::VENDOR_NAME] ) ) {
|
| 66 |
+
$this->setVendorName($a [PostmanOAuthToken::VENDOR_NAME]);
|
| 67 |
+
}
|
| 68 |
}
|
| 69 |
|
| 70 |
/**
|
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
|
|
@@ -44,7 +44,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 44 |
define( 'POST_SMTP_BASE', __FILE__ );
|
| 45 |
define( 'POST_SMTP_PATH', __DIR__ );
|
| 46 |
define( 'POST_SMTP_URL', plugins_url('', POST_SMTP_BASE ) );
|
| 47 |
-
define( 'POST_SMTP_VER', '2.0.
|
| 48 |
define( 'POST_SMTP_SHOW_RELEASE_MESSAGE', true );
|
| 49 |
define( 'POST_SMTP_RELEASE_MESSAGE', 'We have a new Facebook group, feel free to join.' );
|
| 50 |
define( 'POST_SMTP_RELEASE_URL', 'https://www.facebook.com/groups/post.smtp' );
|
| 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
|
| 10 |
* Author: Yehuda Hassine
|
| 11 |
* Text Domain: post-smtp
|
| 12 |
* Author URI: https://postmansmtp.com
|
| 44 |
define( 'POST_SMTP_BASE', __FILE__ );
|
| 45 |
define( 'POST_SMTP_PATH', __DIR__ );
|
| 46 |
define( 'POST_SMTP_URL', plugins_url('', POST_SMTP_BASE ) );
|
| 47 |
+
define( 'POST_SMTP_VER', '2.0.10' );
|
| 48 |
define( 'POST_SMTP_SHOW_RELEASE_MESSAGE', true );
|
| 49 |
define( 'POST_SMTP_RELEASE_MESSAGE', 'We have a new Facebook group, feel free to join.' );
|
| 50 |
define( 'POST_SMTP_RELEASE_URL', 'https://www.facebook.com/groups/post.smtp' );
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=yehuda@m
|
|
| 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.3.2
|
| 7 |
-
Stable tag: 2.0.
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
|
@@ -17,9 +17,6 @@ Get notified if your emails are failing inside your Chrome browser. [Download he
|
|
| 17 |
|
| 18 |
= WordPress Mail SMTP Plugin =
|
| 19 |
|
| 20 |
-
= Postman SMTP is back! =
|
| 21 |
-
No need to search for another SMTP plugin anymore.
|
| 22 |
-
|
| 23 |
Post SMTP is a next-generation WP Mail SMTP plugin, that assists in the delivery of email generated by your WordPress site. Post SMTP is the first and only plugin to support the [latest security standards](http://googleonlinesecurity.blogspot.ca/2014/04/new-security-measures-will-affect-older.html). With OAuth 2.0, there is **no need** to [store your email passsword](http://blog.codinghorror.com/youre-probably-storing-passwords-incorrectly/) in the WordPress database where it might be found.
|
| 24 |
|
| 25 |
The **Connectivity Test** and intelligent **Setup Wizard** scan your SMTP server to detect firewall blocks and eliminate configuration mistakes. The built-in **Email Log** is an invaluable resource for [diagnosing problems](https://wordpress.org/support/topic/ugly-e-mails-no-html-and-no-special-characters?replies=15) with emails. Even hosts that block the standard SMTP ports, like GoDaddy or Bluehost, can't stop your email as **Post SMTP can deliver via HTTPS** if it can't use SMTP.
|
|
@@ -87,6 +84,10 @@ SendGrid has a free SMTP plan that you can use to send up to 100 emails per day.
|
|
| 87 |
* Reliable SMTP delivery requires credentials with an email service provider
|
| 88 |
* OAuth 2.0 features require a Gmail, Hotmail or Yahoo mail OAuth 2.0 credentials
|
| 89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
= CREDITS =
|
| 91 |
|
| 92 |
Post SMTP (aka Postman SMTP) plugin was originally created by Jason Hendriks.
|
|
@@ -286,6 +287,13 @@ To avoid being flagged as spam, you need to prove your email isn't forged. On a
|
|
| 286 |
|
| 287 |
== Changelog ==
|
| 288 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 289 |
= 2.0.9 - 2020-01-13
|
| 290 |
* Fixed: Notify on error bug - crash site
|
| 291 |
* Fixed: From header
|
| 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.3.2
|
| 7 |
+
Stable tag: 2.0.10
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 17 |
|
| 18 |
= WordPress Mail SMTP Plugin =
|
| 19 |
|
|
|
|
|
|
|
|
|
|
| 20 |
Post SMTP is a next-generation WP Mail SMTP plugin, that assists in the delivery of email generated by your WordPress site. Post SMTP is the first and only plugin to support the [latest security standards](http://googleonlinesecurity.blogspot.ca/2014/04/new-security-measures-will-affect-older.html). With OAuth 2.0, there is **no need** to [store your email passsword](http://blog.codinghorror.com/youre-probably-storing-passwords-incorrectly/) in the WordPress database where it might be found.
|
| 21 |
|
| 22 |
The **Connectivity Test** and intelligent **Setup Wizard** scan your SMTP server to detect firewall blocks and eliminate configuration mistakes. The built-in **Email Log** is an invaluable resource for [diagnosing problems](https://wordpress.org/support/topic/ugly-e-mails-no-html-and-no-special-characters?replies=15) with emails. Even hosts that block the standard SMTP ports, like GoDaddy or Bluehost, can't stop your email as **Post SMTP can deliver via HTTPS** if it can't use SMTP.
|
| 84 |
* Reliable SMTP delivery requires credentials with an email service provider
|
| 85 |
* OAuth 2.0 features require a Gmail, Hotmail or Yahoo mail OAuth 2.0 credentials
|
| 86 |
|
| 87 |
+
= Looking for Google Analytics plugin? =
|
| 88 |
+
If you used Google Analytics Dashboard For WP and you really hate the latest updates, I have forked the original plugin here:
|
| 89 |
+
[https://wordpress.org/plugins/metrics-query/](https://wordpress.org/plugins/metrics-query/)
|
| 90 |
+
|
| 91 |
= CREDITS =
|
| 92 |
|
| 93 |
Post SMTP (aka Postman SMTP) plugin was originally created by Jason Hendriks.
|
| 287 |
|
| 288 |
== Changelog ==
|
| 289 |
|
| 290 |
+
= 2.0.10 - 2020-01-21
|
| 291 |
+
* Fixed: HTML content type
|
| 292 |
+
* Fixed: Sendgrid crash when has duplicates recipients (bypass, Sendgrid issue).
|
| 293 |
+
* Fixed: Few OAuth undefined notifications
|
| 294 |
+
* Fixed: Duplicate Emails - When you have notify and confirm (Ninja forms, etc..)
|
| 295 |
+
* Fixed: Logs wp_error convert
|
| 296 |
+
|
| 297 |
= 2.0.9 - 2020-01-13
|
| 298 |
* Fixed: Notify on error bug - crash site
|
| 299 |
* Fixed: From header
|
