WP Mail SMTP by WPForms - Version 1.2.5

Version Description

  • 2018-02-05 =
  • Fixed: Return path can't be turned off.
  • Fixed: Authentication sometimes can't be turned off.
  • Fixed: Auto TLS sometimes can't be turned off.
  • Fixed: BCC support for Gmail was broken.
  • Fixed: Debug output improved to handle SELinux and grsecurity.
  • Fixed: Strip slashes from plugin settings (useful for From Name option).
  • Fixed: Change the way sanitization is done to prevent accidental removal of useful data.
  • Fixed: Plugin activation will not overwrite settings back to defaults.
  • Fixed: Properly set Auto TLS option on plugin activation.
  • Fixed: Providers autoloading improved for certain Windows-based installs.
  • Fixed: Use the proper path to load translations from plugin's /languages directory.
  • Changed: Do not autoload on each page request plugin settings from WordPress options table.
  • Changed: Do not autoload Pepipost classes unless it's saved as active mailer in settings.
Download this release

Release Info

Developer slaFFik
Plugin Icon 128x128 WP Mail SMTP by WPForms
Version 1.2.5
Comparing to
See all releases

Code changes from version 1.2.3 to 1.2.5

languages/wp-mail-smtp.pot CHANGED
@@ -86,15 +86,15 @@ msgstr ""
86
msgid "Looking for high inbox delivery? Try Pepipost with easy setup and free emails. Learn more %1$shere%2$s."
87
msgstr ""
88
89
- #: wp_mail_smtp.php:371, wp_mail_smtp.php:376, src/Admin/Pages/Settings.php:148
90
msgid "Return Path"
91
msgstr ""
92
93
- #: wp_mail_smtp.php:381, src/Admin/Pages/Settings.php:157
94
msgid "Set the return-path to match the From Email"
95
msgstr ""
96
97
- #: wp_mail_smtp.php:385, src/Admin/Pages/Settings.php:160
98
msgid "Return Path indicates where non-delivery receipts - or bounce messages - are to be sent."
99
msgstr ""
100
@@ -286,11 +286,11 @@ msgstr ""
286
msgid "General"
287
msgstr ""
288
289
- #: src/Admin/Pages/Misc.php:67, src/Admin/Pages/Settings.php:191
290
msgid "Save Settings"
291
msgstr ""
292
293
- #: src/Admin/Pages/Misc.php:95, src/Admin/Pages/Settings.php:246
294
msgid "Settings were successfully saved."
295
msgstr ""
296
@@ -318,7 +318,7 @@ msgstr ""
318
msgid "If you leave this blank, the emails will be sent from %s."
319
msgstr ""
320
321
- #: src/Admin/Pages/Settings.php:161
322
msgid "If unchecked bounce messages may be lost."
323
msgstr ""
324
86
msgid "Looking for high inbox delivery? Try Pepipost with easy setup and free emails. Learn more %1$shere%2$s."
87
msgstr ""
88
89
+ #: wp_mail_smtp.php:371, wp_mail_smtp.php:376, src/Admin/Pages/Settings.php:142
90
msgid "Return Path"
91
msgstr ""
92
93
+ #: wp_mail_smtp.php:381, src/Admin/Pages/Settings.php:151
94
msgid "Set the return-path to match the From Email"
95
msgstr ""
96
97
+ #: wp_mail_smtp.php:385, src/Admin/Pages/Settings.php:154
98
msgid "Return Path indicates where non-delivery receipts - or bounce messages - are to be sent."
99
msgstr ""
100
286
msgid "General"
287
msgstr ""
288
289
+ #: src/Admin/Pages/Misc.php:67, src/Admin/Pages/Settings.php:185
290
msgid "Save Settings"
291
msgstr ""
292
293
+ #: src/Admin/Pages/Misc.php:95, src/Admin/Pages/Settings.php:251
294
msgid "Settings were successfully saved."
295
msgstr ""
296
318
msgid "If you leave this blank, the emails will be sent from %s."
319
msgstr ""
320
321
+ #: src/Admin/Pages/Settings.php:155
322
msgid "If unchecked bounce messages may be lost."
323
msgstr ""
324
readme.txt CHANGED
@@ -146,6 +146,24 @@ By all means please contact us to discuss features or options you'd like to see
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.
146
147
== Changelog ==
148
149
+ = 1.2.5 - 2018-02-05 =
150
+ * Fixed: `Return path` can't be turned off.
151
+ * Fixed: `Authentication` sometimes can't be turned off.
152
+ * Fixed: `Auto TLS` sometimes can't be turned off.
153
+ * Fixed: BCC support for Gmail was broken.
154
+ * Fixed: Debug output improved to handle SELinux and grsecurity.
155
+ * Fixed: Strip slashes from plugin settings (useful for `From Name` option).
156
+ * Fixed: Change the way sanitization is done to prevent accidental removal of useful data.
157
+ * Fixed: Plugin activation will not overwrite settings back to defaults.
158
+ * Fixed: Properly set `Auto TLS` option on plugin activation.
159
+ * Fixed: Providers autoloading improved for certain Windows-based installs.
160
+ * Fixed: Use the proper path to load translations from plugin's `/languages` directory.
161
+ * Changed: Do not autoload on each page request plugin settings from WordPress options table.
162
+ * Changed: Do not autoload Pepipost classes unless it's saved as active mailer in settings.
163
+
164
+ = 1.2.4 - 2018-01-28 =
165
+ * Fixed: Improved escaping in debug reporting.
166
+
167
= 1.2.3 - 2018-01-22 =
168
* Fixed: Gmail tokens were reset after clicking Save Settings.
169
* Fixed: Slight typo in Gmail success message.
src/Admin/Pages/Settings.php CHANGED
@@ -113,12 +113,6 @@ class Settings extends PageAbstract {
113
114
<?php foreach ( wp_mail_smtp()->get_providers()->get_options_all() as $provider ) : ?>
115
116
- <?php
117
- if ( ! $options->is_pepipost_active() && $provider->get_slug() === 'pepipost' ) {
118
- continue;
119
- }
120
- ?>
121
-
122
<div class="wp-mail-smtp-mailer <?php echo $mailer === $provider->get_slug() ? 'active' : ''; ?>">
123
<div class="wp-mail-smtp-mailer-image">
124
<img src="<?php echo esc_url( $provider->get_logo_url() ); ?>"
@@ -149,7 +143,7 @@ class Settings extends PageAbstract {
149
</div>
150
<div class="wp-mail-smtp-setting-field">
151
<input name="wp-mail-smtp[mail][return_path]" type="checkbox"
152
- value="true" <?php checked( true, $options->get( 'mail', 'return_path' ) ); ?>
153
<?php echo $options->is_const_defined( 'mail', 'return_path' ) ? 'disabled' : ''; ?>
154
id="wp-mail-smtp-setting-return_path"
155
/>
@@ -206,6 +200,17 @@ class Settings extends PageAbstract {
206
$options = new Options();
207
$old_opt = $options->get_all();
208
209
// Remove all debug messages when switching mailers.
210
if ( $old_opt['mail']['mailer'] !== $data['mail']['mailer'] ) {
211
Debug::clear();
113
114
<?php foreach ( wp_mail_smtp()->get_providers()->get_options_all() as $provider ) : ?>
115
116
<div class="wp-mail-smtp-mailer <?php echo $mailer === $provider->get_slug() ? 'active' : ''; ?>">
117
<div class="wp-mail-smtp-mailer-image">
118
<img src="<?php echo esc_url( $provider->get_logo_url() ); ?>"
143
</div>
144
<div class="wp-mail-smtp-setting-field">
145
<input name="wp-mail-smtp[mail][return_path]" type="checkbox"
146
+ value="true" <?php checked( true, (bool) $options->get( 'mail', 'return_path' ) ); ?>
147
<?php echo $options->is_const_defined( 'mail', 'return_path' ) ? 'disabled' : ''; ?>
148
id="wp-mail-smtp-setting-return_path"
149
/>
200
$options = new Options();
201
$old_opt = $options->get_all();
202
203
+ // When checkbox is unchecked - it's not submitted at all, so we need to define its default false value.
204
+ if ( ! isset( $data['mail']['return_path'] ) ) {
205
+ $data['mail']['return_path'] = false;
206
+ }
207
+ if ( ! isset( $data['smtp']['autotls'] ) ) {
208
+ $data['smtp']['autotls'] = false;
209
+ }
210
+ if ( ! isset( $data['smtp']['auth'] ) ) {
211
+ $data['smtp']['auth'] = false;
212
+ }
213
+
214
// Remove all debug messages when switching mailers.
215
if ( $old_opt['mail']['mailer'] !== $data['mail']['mailer'] ) {
216
Debug::clear();
src/Admin/Pages/Test.php CHANGED
@@ -170,7 +170,7 @@ class Test extends PageAbstract {
170
171
$mailer_text = '<strong>Params:</strong><br>';
172
173
- $mailer_text .= '<strong>Mailer:</strong> ' . $phpmailer->Mailer . '<br>';
174
$mailer_text .= '<strong>Constants:</strong> ' . ( $options->is_const_enabled() ? 'Yes' : 'No' ) . '<br>';
175
176
// Display different debug info based on the mailer.
@@ -198,7 +198,7 @@ class Test extends PageAbstract {
198
if ( $options->is_mailer_smtp() ) {
199
$smtp_text = '<strong>SMTP Debug:</strong><br>';
200
if ( ! empty( $smtp_debug ) ) {
201
- $smtp_text .= $smtp_debug;
202
} else {
203
$smtp_text .= '[empty]';
204
}
170
171
$mailer_text = '<strong>Params:</strong><br>';
172
173
+ $mailer_text .= '<strong>Mailer:</strong> ' . $options->get( 'mail', 'mailer' ) . '<br>';
174
$mailer_text .= '<strong>Constants:</strong> ' . ( $options->is_const_enabled() ? 'Yes' : 'No' ) . '<br>';
175
176
// Display different debug info based on the mailer.
198
if ( $options->is_mailer_smtp() ) {
199
$smtp_text = '<strong>SMTP Debug:</strong><br>';
200
if ( ! empty( $smtp_debug ) ) {
201
+ $smtp_text .= esc_textarea( $smtp_debug );
202
} else {
203
$smtp_text .= '[empty]';
204
}
src/Core.php CHANGED
@@ -62,7 +62,7 @@ class Core {
62
public function init() {
63
64
// Load translations just in case.
65
- load_plugin_textdomain( 'wp-mail-smtp', false, wp_mail_smtp()->plugin_path . '/languages' );
66
67
/*
68
* Constantly check in admin area, that we don't need to upgrade DB.
@@ -224,16 +224,18 @@ class Core {
224
update_option( 'wp_mail_smtp_version', WPMS_PLUGIN_VER );
225
226
// Create and store initial plugin settings.
227
- $options['mail'] = array(
228
- 'from_email' => get_option( 'admin_email' ),
229
- 'from_name' => get_bloginfo( 'name' ),
230
- 'mailer' => 'mail',
231
- 'return_path' => false,
232
- 'smtp' => array(
233
'autotls' => true,
234
),
235
);
236
237
- Options::init()->set( $options );
238
}
239
}
62
public function init() {
63
64
// Load translations just in case.
65
+ load_plugin_textdomain( 'wp-mail-smtp', false, plugin_basename( wp_mail_smtp()->plugin_path ) . '/languages' );
66
67
/*
68
* Constantly check in admin area, that we don't need to upgrade DB.
224
update_option( 'wp_mail_smtp_version', WPMS_PLUGIN_VER );
225
226
// Create and store initial plugin settings.
227
+ $options = array(
228
+ 'mail' => array(
229
+ 'from_email' => get_option( 'admin_email' ),
230
+ 'from_name' => get_bloginfo( 'name' ),
231
+ 'mailer' => 'mail',
232
+ 'return_path' => false,
233
+ ),
234
+ 'smtp' => array(
235
'autotls' => true,
236
),
237
);
238
239
+ Options::init()->set( $options, true );
240
}
241
}
src/MailCatcher.php CHANGED
@@ -43,6 +43,9 @@ class MailCatcher extends \PHPMailer {
43
return parent::send();
44
}
45
46
// Prepare everything (including the message) for sending.
47
if ( ! $this->preSend() ) {
48
return false;
43
return parent::send();
44
}
45
46
+ // We need this so that the \PHPMailer class will correctly prepare all the headers.
47
+ $this->Mailer = 'mail';
48
+
49
// Prepare everything (including the message) for sending.
50
if ( ! $this->preSend() ) {
51
return false;
src/Options.php CHANGED
@@ -191,6 +191,10 @@ class Options {
191
$value = $this->postprocess_key_defaults( $group, $key );
192
}
193
194
return apply_filters( 'wp_mail_smtp_options_get', $value, $group, $key );
195
}
196
@@ -440,10 +444,12 @@ class Options {
440
* Set plugin options, all at once.
441
*
442
* @since 1.0.0
443
*
444
- * @param array $options Data to save.
445
*/
446
- public function set( $options ) {
447
448
foreach ( (array) $options as $group => $keys ) {
449
foreach ( $keys as $key_name => $key_value ) {
@@ -452,7 +458,7 @@ class Options {
452
switch ( $key_name ) {
453
case 'from_name':
454
case 'mailer':
455
- $options[ $group ][ $key_name ] = $this->get_const_value( $group, $key_name, sanitize_text_field( $options[ $group ][ $key_name ] ) );
456
break;
457
case 'from_email':
458
if ( filter_var( $options[ $group ][ $key_name ], FILTER_VALIDATE_EMAIL ) ) {
@@ -486,13 +492,13 @@ class Options {
486
switch ( $key_name ) {
487
case 'host':
488
case 'user':
489
- $options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, sanitize_text_field( $options[ $mailer ][ $key_name ] ) );
490
break;
491
case 'port':
492
$options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, intval( $options[ $mailer ][ $key_name ] ) );
493
break;
494
case 'encryption':
495
- $options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, sanitize_text_field( $options[ $mailer ][ $key_name ] ) );
496
break;
497
case 'auth':
498
case 'autotls':
@@ -517,7 +523,12 @@ class Options {
517
518
$options = apply_filters( 'wp_mail_smtp_options_set', $options );
519
520
- update_option( self::META_KEY, $options );
521
522
// Now we need to re-cache values.
523
$this->populate_options();
191
$value = $this->postprocess_key_defaults( $group, $key );
192
}
193
194
+ if ( is_string( $value ) ) {
195
+ $value = stripslashes( $value );
196
+ }
197
+
198
return apply_filters( 'wp_mail_smtp_options_get', $value, $group, $key );
199
}
200
444
* Set plugin options, all at once.
445
*
446
* @since 1.0.0
447
+ * @since 1.3.0 Added $once argument to save option only if they don't exist already.
448
*
449
+ * @param array $options Plugin options to save.
450
+ * @param bool $once Whether to update existing options or to add these options only once.
451
*/
452
+ public function set( $options, $once = false ) {
453
454
foreach ( (array) $options as $group => $keys ) {
455
foreach ( $keys as $key_name => $key_value ) {
458
switch ( $key_name ) {
459
case 'from_name':
460
case 'mailer':
461
+ $options[ $group ][ $key_name ] = $this->get_const_value( $group, $key_name, wp_strip_all_tags( $options[ $group ][ $key_name ], true ) );
462
break;
463
case 'from_email':
464
if ( filter_var( $options[ $group ][ $key_name ], FILTER_VALIDATE_EMAIL ) ) {
492
switch ( $key_name ) {
493
case 'host':
494
case 'user':
495
+ $options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, wp_strip_all_tags( $options[ $mailer ][ $key_name ], true ) );
496
break;
497
case 'port':
498
$options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, intval( $options[ $mailer ][ $key_name ] ) );
499
break;
500
case 'encryption':
501
+ $options[ $mailer ][ $key_name ] = $this->get_const_value( $mailer, $key_name, wp_strip_all_tags( $options[ $mailer ][ $key_name ], true ) );
502
break;
503
case 'auth':
504
case 'autotls':
523
524
$options = apply_filters( 'wp_mail_smtp_options_set', $options );
525
526
+ // Whether to update existing options or to add these options only once if they don't exist yet.
527
+ if ( $once ) {
528
+ add_option( self::META_KEY, $options, '', 'no' ); // Do not autoload these options.
529
+ } else {
530
+ update_option( self::META_KEY, $options, 'no' );
531
+ }
532
533
// Now we need to re-cache values.
534
$this->populate_options();
src/Providers/Gmail/Mailer.php CHANGED
@@ -156,6 +156,12 @@ class Mailer extends MailerAbstract {
156
$modules = apache_get_modules();
157
$gmail_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
158
}
159
160
return implode( '<br>', $gmail_text );
161
}
156
$modules = apache_get_modules();
157
$gmail_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
158
}
159
+ if ( function_exists( 'selinux_is_enabled' ) ) {
160
+ $gmail_text[] = '<strong>OS.SELinux:</strong> ' . ( selinux_is_enabled() ? 'Yes' : 'No' );
161
+ }
162
+ if ( function_exists( 'grsecurity_is_enabled' ) ) {
163
+ $gmail_text[] = '<strong>OS.grsecurity:</strong> ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' );
164
+ }
165
166
return implode( '<br>', $gmail_text );
167
}
src/Providers/Loader.php CHANGED
@@ -4,6 +4,7 @@ namespace WPMailSMTP\Providers;
4
5
use WPMailSMTP\Debug;
6
use WPMailSMTP\MailCatcher;
7
8
/**
9
* Class Loader.
@@ -18,12 +19,12 @@ class Loader {
18
* @var array
19
*/
20
protected $providers = array(
21
- 'mail' => '\WPMailSMTP\Providers\Mail\\',
22
- 'gmail' => '\WPMailSMTP\Providers\Gmail\\',
23
- 'mailgun' => '\WPMailSMTP\Providers\Mailgun\\',
24
- 'sendgrid' => '\WPMailSMTP\Providers\Sendgrid\\',
25
- 'pepipost' => '\WPMailSMTP\Providers\Pepipost\\',
26
- 'smtp' => '\WPMailSMTP\Providers\SMTP\\',
27
);
28
29
/**
@@ -39,6 +40,11 @@ class Loader {
39
* @return array
40
*/
41
public function get_providers() {
42
return apply_filters( 'wp_mail_smtp_providers_loader_get_providers', $this->providers );
43
}
44
4
5
use WPMailSMTP\Debug;
6
use WPMailSMTP\MailCatcher;
7
+ use WPMailSMTP\Options;
8
9
/**
10
* Class Loader.
19
* @var array
20
*/
21
protected $providers = array(
22
+ 'mail' => 'WPMailSMTP\Providers\Mail\\',
23
+ 'gmail' => 'WPMailSMTP\Providers\Gmail\\',
24
+ 'mailgun' => 'WPMailSMTP\Providers\Mailgun\\',
25
+ 'sendgrid' => 'WPMailSMTP\Providers\Sendgrid\\',
26
+ 'pepipost' => 'WPMailSMTP\Providers\Pepipost\\',
27
+ 'smtp' => 'WPMailSMTP\Providers\SMTP\\',
28
);
29
30
/**
40
* @return array
41
*/
42
public function get_providers() {
43
+
44
+ if ( ! Options::init()->is_pepipost_active() ) {
45
+ unset( $this->providers['pepipost'] );
46
+ }
47
+
48
return apply_filters( 'wp_mail_smtp_providers_loader_get_providers', $this->providers );
49
}
50
src/Providers/Mail/Mailer.php CHANGED
@@ -29,6 +29,12 @@ class Mailer extends MailerAbstract {
29
$modules = apache_get_modules();
30
$mail_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
31
}
32
33
return implode( '<br>', $mail_text );
34
}
29
$modules = apache_get_modules();
30
$mail_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
31
}
32
+ if ( function_exists( 'selinux_is_enabled' ) ) {
33
+ $mail_text[] = '<strong>OS.SELinux:</strong> ' . ( selinux_is_enabled() ? 'Yes' : 'No' );
34
+ }
35
+ if ( function_exists( 'grsecurity_is_enabled' ) ) {
36
+ $mail_text[] = '<strong>OS.grsecurity:</strong> ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' );
37
+ }
38
39
return implode( '<br>', $mail_text );
40
}
src/Providers/MailerAbstract.php CHANGED
@@ -329,7 +329,7 @@ abstract class MailerAbstract implements MailerInterface {
329
}
330
331
/**
332
- * This method is relevant to SMTP, Pepipost and Mail.
333
* All other custom mailers should override it with own information.
334
*
335
* @since 1.2.0
@@ -343,7 +343,7 @@ abstract class MailerAbstract implements MailerInterface {
343
344
// Mail mailer has nothing to return.
345
if ( $this->options->is_mailer_smtp() ) {
346
- $smtp_text[] = '<strong>ErrorInfo:</strong> ' . make_clickable( $phpmailer->ErrorInfo );
347
$smtp_text[] = '<strong>Host:</strong> ' . $phpmailer->Host;
348
$smtp_text[] = '<strong>Port:</strong> ' . $phpmailer->Port;
349
$smtp_text[] = '<strong>SMTPSecure:</strong> ' . Debug::pvar( $phpmailer->SMTPSecure );
@@ -360,6 +360,12 @@ abstract class MailerAbstract implements MailerInterface {
360
$modules = apache_get_modules();
361
$smtp_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
362
}
363
364
return implode( '<br>', $smtp_text );
365
}
329
}
330
331
/**
332
+ * This method is relevant to SMTP and Pepipost.
333
* All other custom mailers should override it with own information.
334
*
335
* @since 1.2.0
343
344
// Mail mailer has nothing to return.
345
if ( $this->options->is_mailer_smtp() ) {
346
+ $smtp_text[] = '<strong>ErrorInfo:</strong> ' . make_clickable( wp_strip_all_tags( $phpmailer->ErrorInfo ) );
347
$smtp_text[] = '<strong>Host:</strong> ' . $phpmailer->Host;
348
$smtp_text[] = '<strong>Port:</strong> ' . $phpmailer->Port;
349
$smtp_text[] = '<strong>SMTPSecure:</strong> ' . Debug::pvar( $phpmailer->SMTPSecure );
360
$modules = apache_get_modules();
361
$smtp_text[] = '<strong>Apache.mod_security:</strong> ' . ( in_array( 'mod_security', $modules, true ) || in_array( 'mod_security2', $modules, true ) ? 'Yes' : 'No' );
362
}
363
+ if ( function_exists( 'selinux_is_enabled' ) ) {
364
+ $smtp_text[] = '<strong>OS.SELinux:</strong> ' . ( selinux_is_enabled() ? 'Yes' : 'No' );
365
+ }
366
+ if ( function_exists( 'grsecurity_is_enabled' ) ) {
367
+ $smtp_text[] = '<strong>OS.grsecurity:</strong> ' . ( grsecurity_is_enabled() ? 'Yes' : 'No' );
368
+ }
369
370
return implode( '<br>', $smtp_text );
371
}
src/Providers/Mailgun/Mailer.php CHANGED
@@ -324,7 +324,7 @@ class Mailer extends MailerAbstract {
324
}
325
}
326
327
- return implode( '<br>', $error_text );
328
}
329
330
/**
324
}
325
}
326
327
+ return implode( '<br>', array_map( 'esc_textarea', $error_text ) );
328
}
329
330
/**
src/Providers/OptionsAbstract.php CHANGED
@@ -198,7 +198,7 @@ abstract class OptionsAbstract implements OptionsInterface {
198
<input type="checkbox" id="wp-mail-smtp-setting-<?php echo esc_attr( $this->get_slug() ); ?>-autotls"
199
name="wp-mail-smtp[<?php echo esc_attr( $this->get_slug() ); ?>][autotls]" value="yes"
200
<?php echo $this->options->is_const_defined( $this->get_slug(), 'autotls' ) ? 'disabled' : ''; ?>
201
- <?php checked( true, $this->options->get( $this->get_slug(), 'autotls' ) ); ?>
202
/>
203
<span class="wp-mail-smtp-setting-toggle-switch"></span>
204
<span class="wp-mail-smtp-setting-toggle-checked-label"><?php esc_html_e( 'On', 'wp-mail-smtp' ); ?></span>
@@ -220,7 +220,7 @@ abstract class OptionsAbstract implements OptionsInterface {
220
<input type="checkbox" id="wp-mail-smtp-setting-<?php echo esc_attr( $this->get_slug() ); ?>-auth"
221
name="wp-mail-smtp[<?php echo esc_attr( $this->get_slug() ); ?>][auth]" value="yes"
222
<?php echo $this->options->is_const_defined( $this->get_slug(), 'auth' ) ? 'disabled' : ''; ?>
223
- <?php checked( true, $this->options->get( $this->get_slug(), 'auth' ) ); ?>
224
/>
225
<span class="wp-mail-smtp-setting-toggle-switch"></span>
226
<span class="wp-mail-smtp-setting-toggle-checked-label"><?php esc_html_e( 'On', 'wp-mail-smtp' ); ?></span>
198
<input type="checkbox" id="wp-mail-smtp-setting-<?php echo esc_attr( $this->get_slug() ); ?>-autotls"
199
name="wp-mail-smtp[<?php echo esc_attr( $this->get_slug() ); ?>][autotls]" value="yes"
200
<?php echo $this->options->is_const_defined( $this->get_slug(), 'autotls' ) ? 'disabled' : ''; ?>
201
+ <?php checked( true, (bool) $this->options->get( $this->get_slug(), 'autotls' ) ); ?>
202
/>
203
<span class="wp-mail-smtp-setting-toggle-switch"></span>
204
<span class="wp-mail-smtp-setting-toggle-checked-label"><?php esc_html_e( 'On', 'wp-mail-smtp' ); ?></span>
220
<input type="checkbox" id="wp-mail-smtp-setting-<?php echo esc_attr( $this->get_slug() ); ?>-auth"
221
name="wp-mail-smtp[<?php echo esc_attr( $this->get_slug() ); ?>][auth]" value="yes"
222
<?php echo $this->options->is_const_defined( $this->get_slug(), 'auth' ) ? 'disabled' : ''; ?>
223
+ <?php checked( true, (bool) $this->options->get( $this->get_slug(), 'auth' ) ); ?>
224
/>
225
<span class="wp-mail-smtp-setting-toggle-switch"></span>
226
<span class="wp-mail-smtp-setting-toggle-checked-label"><?php esc_html_e( 'On', 'wp-mail-smtp' ); ?></span>
src/Providers/Sendgrid/Mailer.php CHANGED
@@ -324,7 +324,7 @@ class Mailer extends MailerAbstract {
324
}
325
}
326
327
- return implode( '<br>', $error_text );
328
}
329
330
/**
324
}
325
}
326
327
+ return implode( '<br>', array_map( 'esc_textarea', $error_text ) );
328
}
329
330
/**
wp_mail_smtp.php CHANGED
@@ -1,7 +1,7 @@
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,7 +17,7 @@
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
/**
1
<?php
2
/**
3
* Plugin Name: WP Mail SMTP
4
+ * Version: 1.2.5
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.5' );
21
define( 'WPMS_PHP_VER', '5.3' );
22
23
/**