Version Description
- 2018-01-22 =
- Fixed: Gmail tokens were reset after clicking Save Settings.
- Fixed: Slight typo in Gmail success message.
Download this release
Release Info
Developer | slaFFik |
Plugin | WP Mail SMTP by WPForms |
Version | 1.2.3 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.2.3
- languages/wp-mail-smtp.pot +2 -2
- readme.txt +4 -0
- src/Admin/Area.php +1 -1
- src/Admin/Pages/Settings.php +2 -2
- src/MailCatcher.php +7 -7
- src/Options.php +49 -0
- src/Providers/Gmail/Mailer.php +1 -1
- src/Providers/MailerAbstract.php +2 -51
- wp_mail_smtp.php +2 -2
languages/wp-mail-smtp.pot
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the WP Mail SMTP package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
@@ -215,7 +215,7 @@ msgid "There was an error while processing the authentication request. Please ma
|
|
215 |
msgstr ""
|
216 |
|
217 |
#: src/Admin/Area.php:111
|
218 |
-
msgid "You have successfully linked the current site with
|
219 |
msgstr ""
|
220 |
|
221 |
#: src/Admin/Area.php:126
|
1 |
+
# Copyright (C) 2018 WP Mail SMTP
|
2 |
# This file is distributed under the same license as the WP Mail SMTP package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
215 |
msgstr ""
|
216 |
|
217 |
#: src/Admin/Area.php:111
|
218 |
+
msgid "You have successfully linked the current site with your Google API project. Now you can start sending emails through Google."
|
219 |
msgstr ""
|
220 |
|
221 |
#: src/Admin/Area.php:126
|
readme.txt
CHANGED
@@ -146,6 +146,10 @@ By all means please contact us to discuss features or options you'd like to see
|
|
146 |
|
147 |
== Changelog ==
|
148 |
|
|
|
|
|
|
|
|
|
149 |
= 1.2.2 - 2017-12-27 =
|
150 |
* Fixed: Correctly handle Mailgun debug message for an incorrect api key.
|
151 |
* Fixed: Fatal error for Gmail and SMTP mailers with Nginx web-server (without Apache at all).
|
146 |
|
147 |
== Changelog ==
|
148 |
|
149 |
+
= 1.2.3 - 2018-01-22 =
|
150 |
+
* Fixed: Gmail tokens were reset after clicking Save Settings.
|
151 |
+
* Fixed: Slight typo in Gmail success message.
|
152 |
+
|
153 |
= 1.2.2 - 2017-12-27 =
|
154 |
* Fixed: Correctly handle Mailgun debug message for an incorrect api key.
|
155 |
* Fixed: Fatal error for Gmail and SMTP mailers with Nginx web-server (without Apache at all).
|
src/Admin/Area.php
CHANGED
@@ -108,7 +108,7 @@ class Area {
|
|
108 |
switch ( $success ) {
|
109 |
case 'google_site_linked':
|
110 |
WP::add_admin_notice(
|
111 |
-
esc_html__( 'You have successfully linked the current site with
|
112 |
WP::ADMIN_NOTICE_SUCCESS
|
113 |
);
|
114 |
break;
|
108 |
switch ( $success ) {
|
109 |
case 'google_site_linked':
|
110 |
WP::add_admin_notice(
|
111 |
+
esc_html__( 'You have successfully linked the current site with your Google API project. Now you can start sending emails through Google.', 'wp-mail-smtp' ),
|
112 |
WP::ADMIN_NOTICE_SUCCESS
|
113 |
);
|
114 |
break;
|
src/Admin/Pages/Settings.php
CHANGED
@@ -231,8 +231,8 @@ class Settings extends PageAbstract {
|
|
231 |
}
|
232 |
}
|
233 |
|
234 |
-
// New gmail clients data will be added from new $data
|
235 |
-
$to_save =
|
236 |
|
237 |
// All the sanitization is done in Options class.
|
238 |
$options->set( $to_save );
|
231 |
}
|
232 |
}
|
233 |
|
234 |
+
// New gmail clients data will be added from new $data.
|
235 |
+
$to_save = Options::array_merge_recursive( $old_opt, $data );
|
236 |
|
237 |
// All the sanitization is done in Options class.
|
238 |
$options->set( $to_save );
|
src/MailCatcher.php
CHANGED
@@ -28,17 +28,17 @@ class MailCatcher extends \PHPMailer {
|
|
28 |
*/
|
29 |
public function send() {
|
30 |
|
31 |
-
$options
|
32 |
-
$
|
33 |
|
34 |
// Define a custom header, that will be used in Gmail/SMTP mailers.
|
35 |
-
$this->XMailer = 'WPMailSMTP/Mailer/' . $
|
36 |
|
37 |
// Use the default PHPMailer, as we inject our settings there for certain providers.
|
38 |
if (
|
39 |
-
$
|
40 |
-
$
|
41 |
-
$
|
42 |
) {
|
43 |
return parent::send();
|
44 |
}
|
@@ -48,7 +48,7 @@ class MailCatcher extends \PHPMailer {
|
|
48 |
return false;
|
49 |
}
|
50 |
|
51 |
-
$mailer = wp_mail_smtp()->get_providers()->get_mailer( $
|
52 |
|
53 |
if ( ! $mailer ) {
|
54 |
return false;
|
28 |
*/
|
29 |
public function send() {
|
30 |
|
31 |
+
$options = new Options();
|
32 |
+
$mail_mailer = $options->get( 'mail', 'mailer' );
|
33 |
|
34 |
// Define a custom header, that will be used in Gmail/SMTP mailers.
|
35 |
+
$this->XMailer = 'WPMailSMTP/Mailer/' . $mail_mailer . ' ' . WPMS_PLUGIN_VER;
|
36 |
|
37 |
// Use the default PHPMailer, as we inject our settings there for certain providers.
|
38 |
if (
|
39 |
+
$mail_mailer === 'mail' ||
|
40 |
+
$mail_mailer === 'smtp' ||
|
41 |
+
$mail_mailer === 'pepipost'
|
42 |
) {
|
43 |
return parent::send();
|
44 |
}
|
48 |
return false;
|
49 |
}
|
50 |
|
51 |
+
$mailer = wp_mail_smtp()->get_providers()->get_mailer( $mail_mailer, $this );
|
52 |
|
53 |
if ( ! $mailer ) {
|
54 |
return false;
|
src/Options.php
CHANGED
@@ -523,6 +523,55 @@ class Options {
|
|
523 |
$this->populate_options();
|
524 |
}
|
525 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
526 |
/**
|
527 |
* Check whether the site is using Pepipost or not.
|
528 |
*
|
523 |
$this->populate_options();
|
524 |
}
|
525 |
|
526 |
+
/**
|
527 |
+
* Merge recursively, including a proper substitution of values in sub-arrays when keys are the same.
|
528 |
+
* It's more like array_merge() and array_merge_recursive() combined.
|
529 |
+
*
|
530 |
+
* @since 1.0.0
|
531 |
+
*
|
532 |
+
* @return array
|
533 |
+
*/
|
534 |
+
public static function array_merge_recursive() {
|
535 |
+
|
536 |
+
$arrays = func_get_args();
|
537 |
+
|
538 |
+
if ( count( $arrays ) < 2 ) {
|
539 |
+
return isset( $arrays[0] ) ? $arrays[0] : array();
|
540 |
+
}
|
541 |
+
|
542 |
+
$merged = array();
|
543 |
+
|
544 |
+
while ( $arrays ) {
|
545 |
+
$array = array_shift( $arrays );
|
546 |
+
|
547 |
+
if ( ! is_array( $array ) ) {
|
548 |
+
return array();
|
549 |
+
}
|
550 |
+
|
551 |
+
if ( empty( $array ) ) {
|
552 |
+
continue;
|
553 |
+
}
|
554 |
+
|
555 |
+
foreach ( $array as $key => $value ) {
|
556 |
+
if ( is_string( $key ) ) {
|
557 |
+
if (
|
558 |
+
is_array( $value ) &&
|
559 |
+
array_key_exists( $key, $merged ) &&
|
560 |
+
is_array( $merged[ $key ] )
|
561 |
+
) {
|
562 |
+
$merged[ $key ] = call_user_func( __METHOD__, $merged[ $key ], $value );
|
563 |
+
} else {
|
564 |
+
$merged[ $key ] = $value;
|
565 |
+
}
|
566 |
+
} else {
|
567 |
+
$merged[] = $value;
|
568 |
+
}
|
569 |
+
}
|
570 |
+
}
|
571 |
+
|
572 |
+
return $merged;
|
573 |
+
}
|
574 |
+
|
575 |
/**
|
576 |
* Check whether the site is using Pepipost or not.
|
577 |
*
|
src/Providers/Gmail/Mailer.php
CHANGED
@@ -82,7 +82,7 @@ class Mailer extends MailerAbstract {
|
|
82 |
*/
|
83 |
public function send() {
|
84 |
|
85 |
-
// Get the raw MIME email using \
|
86 |
$base64 = base64_encode( $this->phpmailer->getSentMIMEMessage() );
|
87 |
$base64 = str_replace( array( '+', '/', '=' ), array( '-', '_', '' ), $base64 ); // url safe.
|
88 |
$this->message->setRaw( $base64 );
|
82 |
*/
|
83 |
public function send() {
|
84 |
|
85 |
+
// Get the raw MIME email using \MailCatcher data.
|
86 |
$base64 = base64_encode( $this->phpmailer->getSentMIMEMessage() );
|
87 |
$base64 = str_replace( array( '+', '/', '=' ), array( '-', '_', '' ), $base64 ); // url safe.
|
88 |
$this->message->setRaw( $base64 );
|
src/Providers/MailerAbstract.php
CHANGED
@@ -144,7 +144,7 @@ abstract class MailerAbstract implements MailerInterface {
|
|
144 |
* @internal param array $params
|
145 |
*/
|
146 |
protected function set_body_param( $param ) {
|
147 |
-
$this->body =
|
148 |
}
|
149 |
|
150 |
/**
|
@@ -221,7 +221,7 @@ abstract class MailerAbstract implements MailerInterface {
|
|
221 |
*/
|
222 |
public function send() {
|
223 |
|
224 |
-
$params =
|
225 |
'headers' => $this->get_headers(),
|
226 |
'body' => $this->get_body(),
|
227 |
) );
|
@@ -328,55 +328,6 @@ abstract class MailerAbstract implements MailerInterface {
|
|
328 |
return is_string( $string ) && is_array( json_decode( $string, true ) ) && ( json_last_error() === JSON_ERROR_NONE ) ? true : false;
|
329 |
}
|
330 |
|
331 |
-
/**
|
332 |
-
* Merge recursively, including a proper substitution of values in sub-arrays when keys are the same.
|
333 |
-
* It's more like array_merge() and array_merge_recursive() combined.
|
334 |
-
*
|
335 |
-
* @since 1.0.0
|
336 |
-
*
|
337 |
-
* @return array
|
338 |
-
*/
|
339 |
-
protected function array_merge_recursive() {
|
340 |
-
|
341 |
-
$arrays = func_get_args();
|
342 |
-
|
343 |
-
if ( count( $arrays ) < 2 ) {
|
344 |
-
return isset( $arrays[0] ) ? $arrays[0] : array();
|
345 |
-
}
|
346 |
-
|
347 |
-
$merged = array();
|
348 |
-
|
349 |
-
while ( $arrays ) {
|
350 |
-
$array = array_shift( $arrays );
|
351 |
-
|
352 |
-
if ( ! is_array( $array ) ) {
|
353 |
-
return array();
|
354 |
-
}
|
355 |
-
|
356 |
-
if ( empty( $array ) ) {
|
357 |
-
continue;
|
358 |
-
}
|
359 |
-
|
360 |
-
foreach ( $array as $key => $value ) {
|
361 |
-
if ( is_string( $key ) ) {
|
362 |
-
if (
|
363 |
-
is_array( $value ) &&
|
364 |
-
array_key_exists( $key, $merged ) &&
|
365 |
-
is_array( $merged[ $key ] )
|
366 |
-
) {
|
367 |
-
$merged[ $key ] = call_user_func( __FUNCTION__, $merged[ $key ], $value );
|
368 |
-
} else {
|
369 |
-
$merged[ $key ] = $value;
|
370 |
-
}
|
371 |
-
} else {
|
372 |
-
$merged[] = $value;
|
373 |
-
}
|
374 |
-
}
|
375 |
-
}
|
376 |
-
|
377 |
-
return $merged;
|
378 |
-
}
|
379 |
-
|
380 |
/**
|
381 |
* This method is relevant to SMTP, Pepipost and Mail.
|
382 |
* All other custom mailers should override it with own information.
|
144 |
* @internal param array $params
|
145 |
*/
|
146 |
protected function set_body_param( $param ) {
|
147 |
+
$this->body = Options::array_merge_recursive( $this->body, $param );
|
148 |
}
|
149 |
|
150 |
/**
|
221 |
*/
|
222 |
public function send() {
|
223 |
|
224 |
+
$params = Options::array_merge_recursive( $this->get_default_params(), array(
|
225 |
'headers' => $this->get_headers(),
|
226 |
'body' => $this->get_body(),
|
227 |
) );
|
328 |
return is_string( $string ) && is_array( json_decode( $string, true ) ) && ( json_last_error() === JSON_ERROR_NONE ) ? true : false;
|
329 |
}
|
330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
/**
|
332 |
* This method is relevant to SMTP, Pepipost and Mail.
|
333 |
* All other custom mailers should override it with own information.
|
wp_mail_smtp.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP Mail SMTP
|
4 |
-
* Version: 1.2.
|
5 |
* Plugin URI: https://wpforms.com/
|
6 |
* Description: Reconfigures the wp_mail() function to use SMTP instead of mail() and creates an options page to manage the settings.
|
7 |
* Author: WPForms
|
@@ -17,7 +17,7 @@
|
|
17 |
* http://www.gnu.org/licenses/gpl.txt
|
18 |
*/
|
19 |
|
20 |
-
define( 'WPMS_PLUGIN_VER', '1.2.
|
21 |
define( 'WPMS_PHP_VER', '5.3' );
|
22 |
|
23 |
/**
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP Mail SMTP
|
4 |
+
* Version: 1.2.3
|
5 |
* Plugin URI: https://wpforms.com/
|
6 |
* Description: Reconfigures the wp_mail() function to use SMTP instead of mail() and creates an options page to manage the settings.
|
7 |
* Author: WPForms
|
17 |
* http://www.gnu.org/licenses/gpl.txt
|
18 |
*/
|
19 |
|
20 |
+
define( 'WPMS_PLUGIN_VER', '1.2.3' );
|
21 |
define( 'WPMS_PHP_VER', '5.3' );
|
22 |
|
23 |
/**
|