PluginProbe ʕ •ᴥ•ʔ
WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin / 4.9.0
WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin v4.9.0
4.9.0 0.9.6 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.2 1.7.0 1.7.1 1.8.0 1.8.1 1.9.0 2.0.0 2.0.1 2.1.1 2.2.1 2.3.1 2.4.0 2.5.0 2.5.1 2.6.0 2.7.0 2.8.0 2.9.0 3.0.1 3.0.2 3.0.3 3.1.0 3.10.0 3.11.0 3.11.1 3.2.0 3.2.1 3.3.0 3.4.0 3.5.0 3.5.1 3.5.2 3.6.1 3.7.0 3.8.0 3.8.2 3.9.0 4.0.1 4.1.0 4.1.1 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.8.0 trunk 0.10.0 0.10.1 0.11.1 0.11.2 0.3.1 0.3.2 0.4 0.4.1 0.4.2 0.5.0 0.5.1 0.5.2 0.6 0.7 0.8 0.8.2 0.8.3 0.8.4 0.8.5 0.8.6 0.8.7 0.9.0 0.9.1 0.9.2 0.9.3 0.9.4 0.9.5
wp-mail-smtp / src / Conflicts.php
wp-mail-smtp / src Last commit date
Abilities 5 days ago Admin 5 days ago Compatibility 5 days ago Helpers 5 days ago Integrations 5 days ago Providers 5 days ago Queue 5 days ago Reports 5 days ago Tasks 5 days ago TestEmail 5 days ago UsageTracking 5 days ago WPCLI 5 days ago AbstractConnection.php 5 days ago Conflicts.php 5 days ago Connect.php 5 days ago Connection.php 5 days ago ConnectionInterface.php 5 days ago ConnectionsManager.php 5 days ago Core.php 5 days ago DBRepair.php 5 days ago Debug.php 5 days ago EmailSendingDebug.php 5 days ago Geo.php 5 days ago MailCatcher.php 5 days ago MailCatcherInterface.php 5 days ago MailCatcherTrait.php 5 days ago MailCatcherV6.php 5 days ago Migration.php 5 days ago MigrationAbstract.php 5 days ago Migrations.php 5 days ago OptimizedEmailSending.php 5 days ago Options.php 5 days ago Processor.php 5 days ago SiteHealth.php 5 days ago Upgrade.php 5 days ago Uploads.php 5 days ago WP.php 5 days ago WPMailArgs.php 5 days ago WPMailInitiator.php 5 days ago
Conflicts.php
686 lines
1 <?php
2
3 namespace WPMailSMTP;
4
5 /**
6 * Class Conflicts.
7 *
8 * @since 1.5.0
9 */
10 class Conflicts {
11
12 /**
13 * List of plugins WP Mail SMTP may be conflicting with.
14 *
15 * @since 1.5.0
16 * @since 2.8.0 Updated the format of the plugins array.
17 *
18 * @var array List of plugins WP Mail SMTP may be conflicting with.
19 */
20 public static $plugins = [];
21
22 /**
23 * All detected conflicting plugins.
24 *
25 * @since 1.5.0
26 * @since 3.6.0 Changed from storing a single conflicting plugin info to storing multiple conflicting plugin items.
27 *
28 * @var array
29 */
30 protected $conflict = [];
31
32 /**
33 * Constructor.
34 *
35 * @since 2.9.0
36 */
37 public function __construct() {
38
39 self::$plugins = [
40
41 /**
42 * Url: https://wordpress.org/plugins/easy-wp-smtp/
43 */
44 [
45 'name' => 'Easy WP SMTP',
46 'slug' => 'easy-wp-smtp/easy-wp-smtp.php',
47 'class' => 'EasyWPSMTP',
48 ],
49
50 /**
51 * Closed.
52 *
53 * Url: https://wordpress.org/plugins/postman-smtp/
54 */
55 [
56 'name' => 'Postman SMTP',
57 'slug' => 'postman-smtp/postman-smtp.php',
58 'function' => 'postman_start',
59 ],
60
61 /**
62 * Url: https://wordpress.org/plugins/post-smtp/
63 */
64 [
65 'name' => 'Post SMTP',
66 'slug' => 'post-smtp/postman-smtp.php',
67 'function' => 'post_smtp_start',
68 ],
69
70 /**
71 * Url: https://wordpress.org/plugins/wp-mail-bank/
72 */
73 [
74 'name' => 'Mail Bank',
75 'slug' => 'wp-mail-bank/wp-mail-bank.php',
76 'function' => 'mail_bank',
77 ],
78
79 /**
80 * Url: https://wordpress.org/plugins/smtp-mailer/
81 */
82 [
83 'name' => 'SMTP Mailer',
84 'slug' => 'smtp-mailer/main.php',
85 'class' => 'SMTP_MAILER',
86 ],
87
88 /**
89 * Url: https://wordpress.org/plugins/gmail-smtp/
90 */
91 [
92 'name' => 'Gmail SMTP',
93 'slug' => 'gmail-smtp/main.php',
94 'class' => 'GMAIL_SMTP',
95 ],
96
97 /**
98 * Url: https://wordpress.org/plugins/wp-email-smtp/
99 */
100 [
101 'name' => 'WP Email SMTP',
102 'class' => 'WP_Email_Smtp',
103 ],
104
105 /**
106 * Url: https://wordpress.org/plugins/smtp-mail/
107 */
108 [
109 'name' => 'SMTP Mail',
110 'slug' => 'smtp-mail/index.php',
111 'function' => 'smtpmail_include',
112 ],
113
114 /**
115 * Url: https://wordpress.org/plugins/bws-smtp/
116 */
117 [
118 'name' => 'SMTP by BestWebSoft',
119 'slug' => 'bws-smtp/bws-smtp.php',
120 'function' => 'bwssmtp_init',
121 ],
122
123 /**
124 * Url: https://wordpress.org/plugins/wp-sendgrid-smtp/
125 */
126 [
127 'name' => 'WP SendGrid SMTP',
128 'slug' => 'wp-sendgrid-smtp/wp-sendgrid-smtp.php',
129 'class' => 'WPSendGrid_SMTP',
130 ],
131
132 /**
133 * Url: https://wordpress.org/plugins/sar-friendly-smtp/
134 */
135 [
136 'name' => 'SAR Friendly SMTP',
137 'slug' => 'sar-friendly-smtp/sar-friendly-smtp.php',
138 'function' => 'sar_friendly_smtp',
139 ],
140
141 /**
142 * Url: https://wordpress.org/plugins/wp-gmail-smtp/
143 */
144 [
145 'name' => 'WP Gmail SMTP',
146 'slug' => 'wp-gmail-smtp/wp-gmail-smtp.php',
147 'class' => 'WPGmail_SMTP',
148 ],
149
150 /**
151 * Url: https://wordpress.org/plugins/cimy-swift-smtp/
152 */
153 [
154 'name' => 'Cimy Swift SMTP',
155 'slug' => 'cimy-swift-smtp/cimy_swift_smtp.php',
156 'function' => 'st_smtp_check_config',
157 ],
158
159 /**
160 * Closed.
161 *
162 * Url: https://wordpress.org/plugins/wp-easy-smtp/
163 */
164 [
165 'name' => 'WP Easy SMTP',
166 'slug' => 'wp-easy-smtp/wp-easy-smtp.php',
167 'class' => 'WP_Easy_SMTP',
168 ],
169
170 /**
171 * Url: https://wordpress.org/plugins/wp-mailgun-smtp/
172 */
173 [
174 'name' => 'WP Mailgun SMTP',
175 'slug' => 'wp-mailgun-smtp/wp-mailgun-smtp.php',
176 'class' => 'WPMailgun_SMTP',
177 ],
178
179 /**
180 * Url: https://wordpress.org/plugins/my-smtp-wp/
181 */
182 [
183 'name' => 'MY SMTP WP',
184 'slug' => 'my-smtp-wp/my-smtp-wp.php',
185 'function' => 'my_smtp_wp',
186 ],
187
188 /**
189 * Closed.
190 *
191 * Url: https://wordpress.org/plugins/wp-mail-booster/
192 */
193 [
194 'name' => 'WP Mail Booster',
195 'slug' => 'wp-mail-booster/wp-mail-booster.php',
196 'function' => 'mail_booster',
197 ],
198
199 /**
200 * Url: https://wordpress.org/plugins/sendgrid-email-delivery-simplified/
201 */
202 [
203 'name' => 'SendGrid',
204 'slug' => 'sendgrid-email-delivery-simplified/wpsendgrid.php',
205 'class' => 'Sendgrid_Settings',
206 ],
207
208 /**
209 * Url: https://wordpress.org/plugins/wp-mail-smtp-mailer/
210 */
211 [
212 'name' => 'WP Mail Smtp Mailer',
213 'slug' => 'wp-mail-smtp-mailer/wp-mail-smtp-mailer.php',
214 'function' => 'WPMS_php_mailer',
215 ],
216
217 /**
218 * Closed.
219 *
220 * Url: https://wordpress.org/plugins/wp-amazon-ses-smtp/
221 */
222 [
223 'name' => 'WP Amazon SES SMTP',
224 'slug' => 'wp-amazon-ses-smtp/wp-amazon-ses.php',
225 'class' => 'WPAmazonSES_SMTP',
226 ],
227
228 /**
229 * Url: https://wordpress.org/plugins/postmark-approved-wordpress-plugin/
230 */
231 [
232 'name' => 'Postmark (Official)',
233 'slug' => 'postmark-approved-wordpress-plugin/postmark.php',
234 'class' => 'Postmark_Mail',
235 ],
236
237 /**
238 * Url: https://wordpress.org/plugins/mailgun/
239 */
240 [
241 'name' => 'Mailgun',
242 'slug' => 'mailgun/mailgun.php',
243 'class' => 'Mailgun',
244 ],
245
246 /**
247 * Url: https://wordpress.org/plugins/sparkpost/
248 */
249 [
250 'name' => 'SparkPost',
251 'slug' => 'sparkpost/wordpress-sparkpost.php',
252 'class' => 'WPSparkPost\SparkPost',
253 ],
254
255 /**
256 * Url: https://wordpress.org/plugins/wp-yahoo-smtp/
257 */
258 [
259 'name' => 'WP Yahoo SMTP',
260 'slug' => 'wp-yahoo-smtp/wp-yahoo-smtp.php',
261 'class' => 'WPYahoo_SMTP',
262 ],
263
264 /**
265 * Url: https://wordpress.org/plugins/wp-ses/
266 */
267 [
268 'name' => 'WP Offload SES Lite',
269 'slug' => 'wp-ses/wp-ses.php',
270 'function' => 'wp_offload_ses_lite_init',
271 ],
272
273 /**
274 * Url: https://deliciousbrains.com/wp-offload-ses/
275 */
276 [
277 'name' => 'WP Offload SES',
278 'slug' => 'wp-offload-ses/wp-offload-ses.php',
279 ],
280
281 /**
282 * Url: https://wordpress.org/plugins/turbosmtp/
283 */
284 [
285 'name' => 'turboSMTP',
286 'slug' => 'turbosmtp/turbo-smtp-plugin.php',
287 'function' => 'TSPHPMailer',
288 ],
289
290 /**
291 * Url: https://wordpress.org/plugins/wp-smtp/
292 */
293 [
294 'name' => 'Solid Mail',
295 'slug' => 'wp-smtp/wp-smtp.php',
296 'class' => 'WP_SMTP',
297 ],
298
299 /**
300 * This plugin can be used along with our plugin if disable next option
301 * WooCommerce -> Settings -> Sendinblue -> Email Options -> Enable Sendinblue to send WooCommerce emails.
302 *
303 * Url: https://wordpress.org/plugins/woocommerce-sendinblue-newsletter-subscription
304 */
305 [
306 'name' => 'Sendinblue - WooCommerce Email Marketing',
307 'slug' => 'woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php',
308 'class' => 'WC_Sendinblue_Integration',
309 'test' => 'test_wc_sendinblue_integration',
310 'message' => esc_html__( 'Or disable the Sendinblue email sending setting in WooCommerce > Settings > Sendinblue (tab) > Email Options (tab) > Enable Sendinblue to send WooCommerce emails.', 'wp-mail-smtp' ),
311 ],
312
313 /**
314 * Url: https://wordpress.org/plugins/disable-emails/
315 */
316 [
317 'name' => 'Disable Emails',
318 'slug' => 'disable-emails/disable-emails.php',
319 'class' => '\webaware\disable_emails\Plugin',
320 ],
321
322 /**
323 * Url: https://wordpress.org/plugins/fluent-smtp/
324 */
325 [
326 'name' => 'FluentSMTP',
327 'slug' => 'fluent-smtp/fluent-smtp.php',
328 'function' => 'fluentSmtpInit',
329 ],
330
331 /**
332 * This plugin can be used along with our plugin if enable next option
333 * Settings > Email template > Sender (tab) -> Do not change email sender by default.
334 *
335 * Url: https://wordpress.org/plugins/wp-html-mail/
336 */
337 [
338 'name' => 'WP HTML Mail - Email Template Designer',
339 'slug' => 'wp-html-mail/wp-html-mail.php',
340 'function' => 'Haet_Mail',
341 'test' => 'test_wp_html_mail_integration',
342 'message' => esc_html__( 'Or enable "Do not change email sender by default" setting in Settings > Email template > Sender (tab).', 'wp-mail-smtp' ),
343 ],
344
345 /**
346 * This plugin can be used along with our plugin if "SMTP" module is deactivated.
347 *
348 * Url: https://wordpress.org/plugins/branda-white-labeling/
349 */
350 [
351 'name' => 'Branda',
352 'slug' => 'branda-white-labeling/ultimate-branding.php',
353 'function' => 'set_ultimate_branding',
354 'test' => 'test_branda_integration',
355 'message' => esc_html__( 'Or deactivate "SMTP" module in Branda > Emails > SMTP.', 'wp-mail-smtp' ),
356 ],
357
358 /**
359 * Url: https://wordpress.org/plugins/zoho-mail/
360 */
361 [
362 'name' => 'Zoho Mail for WordPress',
363 'slug' => 'zoho-mail/zohoMail.php',
364 'function' => 'zmail_send_mail_callback',
365 ],
366
367 /**
368 * Url: https://elementor.com/products/site-mailer/
369 */
370 [
371 'name' => 'Site Mailer - SMTP Replacement, Email API Deliverability & Email Log',
372 'slug' => 'site-mailer/site-mailer.php',
373 'class' => 'SiteMailer',
374 ],
375
376 /**
377 * Url: https://wordpress.org/plugins/suremails/
378 */
379 [
380 'name' => 'SureMail',
381 'slug' => 'suremails/suremails.php',
382 'class' => 'MailHandler',
383 ],
384
385 /**
386 * Url: https://www.gravityforms.com/gravity-smtp/
387 */
388 [
389 'name' => 'Gravity SMTP',
390 'slug' => 'gravitysmtp/gravitysmtp.php',
391 'class' => 'Gravity_SMTP',
392 ],
393
394 ];
395 }
396
397 /**
398 * Whether we have a conflict with predefined list of plugins.
399 *
400 * @since 1.5.0
401 *
402 * @return bool
403 */
404 public function is_detected() {
405
406 foreach ( self::$plugins as $plugin ) {
407 if ( $this->is_conflicting_plugin( $plugin ) ) {
408 $this->conflict[] = $plugin;
409 }
410 }
411
412 return ! empty( $this->conflict );
413 }
414
415 /**
416 * Whether we have a conflict with plugin.
417 *
418 * @since 2.9.0
419 *
420 * @param array $plugin Plugin data.
421 *
422 * @return bool
423 */
424 protected function is_conflicting_plugin( $plugin ) {
425
426 $conflict = false;
427
428 if ( isset( $plugin['slug'] ) && WP::is_plugin_activated( $plugin['slug'] ) ) {
429 $conflict = true;
430 } elseif ( isset( $plugin['class'] ) && class_exists( $plugin['class'], false ) ) {
431 $conflict = true;
432 } elseif ( isset( $plugin['function'] ) && function_exists( $plugin['function'] ) ) {
433 $conflict = true;
434 }
435
436 if (
437 $conflict &&
438 isset( $plugin['test'] ) &&
439 is_callable( [ $this, $plugin['test'] ] )
440 ) {
441 $conflict = call_user_func( [ $this, $plugin['test'] ] );
442 }
443
444 /**
445 * Filters whether the plugin is conflicting.
446 *
447 * @since 2.9.0
448 *
449 * @param bool $conflict Whether the plugin is conflicting.
450 * @param array $plugin {
451 * Plugin data.
452 *
453 * @type string $name Plugin name.
454 * @type string $slug Plugin slug.
455 * }
456 */
457 return apply_filters( 'wp_mail_smtp_conflicts_is_conflicting_plugin', $conflict, $plugin );
458 }
459
460 /**
461 * Add a warning admin message to a user about the conflicting plugin.
462 *
463 * @since 1.5.0
464 */
465 public function notify() {
466
467 if ( empty( $this->conflict ) ) {
468 return;
469 }
470
471 foreach ( $this->conflict as $conflict_plugin ) {
472 WP::add_admin_notice( $this->get_conflict_message( $conflict_plugin ), WP::ADMIN_NOTICE_WARNING );
473 }
474 }
475
476 /**
477 * Get the conflicting plugin name is any.
478 *
479 * @since 1.5.0
480 * @since 3.6.0 Added optional conflict_plugin parameter.
481 *
482 * @param array $conflict_plugin The conflicting plugin array. If provided then extract the name from the array.
483 * Else get the name from first conflicting plugin.
484 *
485 * @return null|string
486 */
487 public function get_conflict_name( $conflict_plugin = [] ) {
488
489 $name = null;
490
491 if ( empty( $conflict_plugin ) && isset( $this->conflict[0] ) ) {
492 $conflict_plugin = $this->conflict[0];
493 }
494
495 if ( ! empty( $conflict_plugin['name'] ) ) {
496 $name = $conflict_plugin['name'];
497 }
498
499 return $name;
500 }
501
502 /**
503 * Get the conflicting plugin message.
504 *
505 * @since 2.9.0
506 * @since 3.6.0 Added optional conflict_plugin parameter.
507 * @since 4.9.0 Append a one-click deactivation link when the conflicting plugin has a known slug.
508 *
509 * @param array $conflict_plugin The conflicting plugin array. If provided then extract the message from the array.
510 * Else get the message from first conflicting plugin.
511 *
512 * @return string
513 */
514 public function get_conflict_message( $conflict_plugin = [] ) {
515
516 if ( empty( $conflict_plugin ) && isset( $this->conflict[0] ) ) {
517 $conflict_plugin = $this->conflict[0];
518 }
519
520 $message = sprintf( /* translators: %1$s - Plugin name causing conflict. */
521 esc_html__( 'Heads up! WP Mail SMTP has detected %1$s is activated. Please deactivate %1$s to prevent conflicts.', 'wp-mail-smtp' ),
522 $this->get_conflict_name( $conflict_plugin )
523 );
524
525 if ( ! empty( $conflict_plugin['message'] ) ) {
526 $message .= ' ' . $conflict_plugin['message'];
527 }
528
529 $deactivate_link = $this->get_conflict_deactivate_link( $conflict_plugin );
530
531 if ( $deactivate_link !== '' ) {
532 $message .= ' ' . $deactivate_link;
533 }
534
535 return $message;
536 }
537
538 /**
539 * Build a one-click deactivation link for the conflicting plugin.
540 *
541 * @since 4.9.0
542 *
543 * @param array $conflict_plugin The conflicting plugin array.
544 *
545 * @return string Escaped anchor markup, or an empty string when no link applies.
546 */
547 private function get_conflict_deactivate_link( $conflict_plugin ) {
548
549 if ( empty( $conflict_plugin['slug'] ) || ! WP::is_plugin_activated( $conflict_plugin['slug'] ) ) {
550 return '';
551 }
552
553 $slug = $conflict_plugin['slug'];
554
555 if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
556 require_once ABSPATH . 'wp-admin/includes/plugin.php';
557 }
558
559 // Network-active plugins can only be deactivated from the network admin plugins screen.
560 if ( is_multisite() && is_plugin_active_for_network( $slug ) ) {
561 if ( ! current_user_can( 'manage_network_plugins' ) ) {
562 return '';
563 }
564
565 $base_url = network_admin_url( 'plugins.php?action=deactivate&plugin=' . $slug );
566 } else {
567 if ( ! current_user_can( 'activate_plugins' ) ) {
568 return '';
569 }
570
571 $base_url = admin_url( 'plugins.php?action=deactivate&plugin=' . $slug );
572 }
573
574 $url = wp_nonce_url( $base_url, 'deactivate-plugin_' . $slug );
575
576 return sprintf(
577 '<a href="%1$s">%2$s</a>',
578 esc_url( $url ),
579 sprintf( /* translators: %1$s - Plugin name causing conflict. */
580 esc_html__( 'Deactivate %1$s', 'wp-mail-smtp' ),
581 $this->get_conflict_name( $conflict_plugin )
582 )
583 );
584 }
585
586 /**
587 * Returns array containing (names) of all the conflicting plugins.
588 *
589 * @since 3.6.0
590 *
591 * @return array
592 */
593 public function get_all_conflict_names() {
594
595 if ( empty( $this->conflict ) ) {
596 return [];
597 }
598
599 $names_arr = [];
600
601 foreach ( $this->conflict as $conflict_plugin ) {
602 $names_arr[] = $this->get_conflict_name( $conflict_plugin );
603 }
604
605 return $names_arr;
606 }
607
608 /**
609 * Check whether we have conflict with "WooCommerce Sendinblue Newsletter Subscription" plugin.
610 *
611 * @since 2.9.0
612 * @since 3.7.0 Added a version compatibility check.
613 *
614 * @return bool Returns true if we have conflict otherwise false.
615 */
616 protected function test_wc_sendinblue_integration() {
617
618 // Since version `3.0.0` "Sendinblue - WooCommerce Email Marketing" plugin no longer conflicts with WP Mail SMTP.
619 if ( defined( 'SENDINBLUE_WC_PLUGIN_VERSION' ) && version_compare( SENDINBLUE_WC_PLUGIN_VERSION, '3.0.0', '>=' ) ) {
620 return false;
621 }
622
623 // Check requirements for test.
624 if (
625 ! class_exists( 'WC_Sendinblue_Integration', false ) ||
626 ! property_exists( 'WC_Sendinblue_Integration', 'ws_smtp_enabled' )
627 ) {
628 return true;
629 }
630
631 // Display or hide conflict message after toggle "Enable Sendinblue to send WooCommerce emails" option.
632 // phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
633 if (
634 ! empty( $_POST ) &&
635 ( isset( $_GET['page'] ) && $_GET['page'] === 'wc-settings' ) &&
636 ( isset( $_GET['tab'] ) && $_GET['tab'] === 'sendinblue' ) &&
637 ( isset( $_GET['section'] ) && $_GET['section'] === 'email_options' )
638 ) {
639 return isset( $_POST['ws_smtp_enable'] );
640 }
641 // phpcs:enable
642
643 return \WC_Sendinblue_Integration::$ws_smtp_enabled === 'yes';
644 }
645
646 /**
647 * Check whether we have conflict with "WP HTML Mail - Email Template Designer" plugin.
648 *
649 * @since 3.3.0
650 *
651 * @return bool Returns true if we have conflict otherwise false.
652 */
653 protected function test_wp_html_mail_integration() {
654
655 // Check requirements for test.
656 if (
657 ! function_exists( 'Haet_Mail' ) ||
658 ! is_object( Haet_Mail() ) ||
659 ! method_exists( Haet_Mail(), 'get_options' )
660 ) {
661 return true;
662 }
663
664 $options = Haet_Mail()->get_options();
665
666 return ! isset( $options['disable_sender'] ) || ! $options['disable_sender'];
667 }
668
669 /**
670 * Check whether we have conflict with "Branda" plugin.
671 *
672 * @since 3.5.0
673 *
674 * @return bool Returns true if we have conflict otherwise false.
675 */
676 protected function test_branda_integration() {
677
678 // Check requirements for test.
679 if ( ! function_exists( 'branda_is_active_module' ) ) {
680 return true;
681 }
682
683 return branda_is_active_module( 'emails/smtp.php' );
684 }
685 }
686