Procházet zdrojové kódy

#4017 SMTP Mailer: test mode

Alex Trofimov před 4 roky
rodič
revize
af92c500d2

+ 4 - 1
modules/boonex/russian/data/langs/bx_smtp/ru.xml

@@ -50,6 +50,9 @@
     <string name="_bx_smtp_option_secure"><![CDATA[Использовать шифрованное соединение для SMTP сервера]]></string>
     <string name="_bx_smtp_option_allow_selfsigned"><![CDATA[Разрешить не-безопасные сертификаты]]></string>
     <string name="_bx_smtp_option_from_name"><![CDATA[Имя, от которого отправлять все письма]]></string>
-    <string name="_bx_smtp_option_from_email"><![CDATA[E-mail адрес, от которого отправлять все письма]]></string>    
+    <string name="_bx_smtp_option_from_email"><![CDATA[E-mail адрес, от которого отправлять все письма]]></string>
+    <string name="_bx_smtp_option_test_mode"><![CDATA[Тестовый режим (перенаправить всю почту на единственный адрес)]]></string>
+    <string name="_bx_smtp_option_test_email"><![CDATA[Тестовый e-mail]]></string>
+    <string name="_bx_smtp_option_test_subj"><![CDATA[Тестовый префикс темы письма]]></string>
     <string name="_bx_smtp_mailer_log"><![CDATA[SMTP Почтовик: ошибки отправки]]></string>
 </resources>

+ 11 - 2
modules/boonex/smtpmailer/classes/BxSMTPModule.php

@@ -90,7 +90,15 @@ class BxSMTPModule extends BxDolModule
 
                 $mail->WordWrap = 50; // set word wrap
 
-                $mail->AddAddress($sRecipientEmail);
+                if (getParam('bx_smtp_test_mode')) {
+                    $aCustomHeaders['X-Original-To'] = $sRecipientEmail;
+                    if (isset($aCustomHeaders['Subject']))
+                        $aCustomHeaders['Subject'] = getParam('bx_smtp_test_subj') . $aCustomHeaders['Subject'];
+                    else
+                        $mail->Subject = getParam('bx_smtp_test_subj') . $mail->Subject;
+                }
+
+                $mail->AddAddress(getParam('bx_smtp_test_mode') ? getParam('bx_smtp_test_email') : $sRecipientEmail);
 
                 $mail->IsHTML($isHtml ? true : false);
 
@@ -119,6 +127,7 @@ class BxSMTPModule extends BxDolModule
 
         //--- create system event [begin]
         $aAlertData = array(
+            'test_mode' => (bool)getParam('bx_smtp_test_mode'),
             'email'     => $sRecipientEmail,
             'subject'   => $sMailSubject,
             'body'      => $sMailBody,
@@ -127,7 +136,7 @@ class BxSMTPModule extends BxDolModule
             'recipient' => $aRecipientInfo,
             'html'      => $isHtml,
             'ret'       => $iRet,
-            'error_message' => $sErrorMessage,
+            'error_message' => $sErrorMessage,            
         );
         bx_alert('profile', 'send_mail', $aRecipientInfo && isset($aRecipientInfo['ID']) ? $aRecipientInfo['ID'] : 0, '', $aAlertData);
         //--- create system event [ end ]

+ 3 - 0
modules/boonex/smtpmailer/install/langs/en.xml

@@ -51,6 +51,9 @@
     <string name="_bx_smtp_option_allow_selfsigned"><![CDATA[Allow self-signed certificates]]></string>
     <string name="_bx_smtp_option_from_name"><![CDATA['From' name of the message]]></string>
     <string name="_bx_smtp_option_from_email"><![CDATA[Override default sender email address]]></string>
+    <string name="_bx_smtp_option_test_mode"><![CDATA[Test mode (reroute all emails to single email address)]]></string>
+    <string name="_bx_smtp_option_test_email"><![CDATA[Test email]]></string>
+    <string name="_bx_smtp_option_test_subj"><![CDATA[Test subject prefix]]></string>
     <string name="_bx_smtp_mailer_log"><![CDATA[SMTP Mailer: sending errors]]></string>
 </resources>
 

+ 4 - 1
modules/boonex/smtpmailer/install/sql/enable.sql

@@ -20,7 +20,10 @@ INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `c
 ('bx_smtp_secure', 'Not Secure', @iCategId, '_bx_smtp_option_secure', 'select', '', '', 70, 'Not Secure,SSL,TLS'), 
 ('bx_smtp_allow_selfsigned', '', @iCategId, '_bx_smtp_option_allow_selfsigned', 'checkbox', '', '', 74, ''),
 ('bx_smtp_from_name', '', @iCategId, '_bx_smtp_option_from_name', 'digit', '', '', 80, ''),
-('bx_smtp_from_email', '', @iCategId, '_bx_smtp_option_from_email', 'digit', '', '', 90, '');
+('bx_smtp_from_email', '', @iCategId, '_bx_smtp_option_from_email', 'digit', '', '', 90, ''),
+('bx_smtp_test_mode', '', @iCategId, '_bx_smtp_option_test_mode', 'checkbox', '', '', 100, ''),
+('bx_smtp_test_email', '', @iCategId, '_bx_smtp_option_test_email', 'digit', '', '', 102, ''),
+('bx_smtp_test_subj', '[TEST] ', @iCategId, '_bx_smtp_option_test_subj', 'digit', '', '', 104, '');A
 
 -- logs