Seditio Source
Root |
./othercms/b2evolution_7.2.3/inc/tools/views/_email_return_settings.form.php
<?php
/**
 * This file implements the form to edit settings for returned emails.
 *
 * This file is part of the evoCore framework - {@link http://evocore.net/}
 * See also {@link https://github.com/b2evolution/b2evolution}.
 *
 * @license GNU GPL v2 - {@link http://b2evolution.net/about/gnu-gpl-license}
 *
 * @copyright (c)2003-2020 by Francois Planque - {@link http://fplanque.com/}
 * Parts of this file are copyright (c)2004-2006 by Daniel HAHLER - {@link http://thequod.de/contact}.
 *
 * @package admin
 */
if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );


/**
 * @var GeneralSettings
 */
global $Settings;


$Form = new Form( NULL, 'settings_checkchanges' );

$Form->begin_form( 'fform' );

$Form->add_crumb( 'emailsettings' );
$Form->hidden( 'ctrl', 'email' );
$Form->hidden( 'tab', get_param( 'tab' ) );
$Form->hidden( 'tab3', get_param( 'tab3' ) );
$Form->hidden( 'action', 'settings' );

$Form->begin_fieldset( TB_('Settings to decode the returned emails').get_manual_link('return-path-configuration') );

    if(
extension_loaded( 'imap' ) )
    {
       
$imap_extenssion_status = TB_('(currently loaded)');
    }
    else
    {
       
$imap_extenssion_status = '<b class="red">'.TB_('(currently NOT loaded)').'</b>';
    }

   
$Form->checkbox_input( 'repath_enabled', $Settings->get('repath_enabled'), TB_('Enabled'),
        array(
'note' => sprintf(TB_('Note: This feature needs the php_imap extension %s.' ), $imap_extenssion_status ) ) );

   
$Form->text_input( 'repath_server_host', $Settings->get('repath_server_host'), 25, TB_('Mail Server'), TB_('Hostname or IP address of your incoming mail server.'), array( 'maxlength' => 255 ) );

   
$Form->radio( 'repath_method', $Settings->get('repath_method'), array(
            array(
'pop3', TB_('POP3'), ),// TRANS: E-Mail retrieval method
           
array( 'imap', TB_('IMAP'), ),// TRANS: E-Mail retrieval method
       
), TB_('Retrieval method') );

   
$Form->radio( 'repath_encrypt', $Settings->get('repath_encrypt'), array(
                                                                        array(
'none', TB_('None'), ),
                                                                        array(
'ssl', TB_('SSL'), ),
                                                                        array(
'tls', TB_('TLS'), ),
                                                                    ),
TB_('Encryption method') );

   
$repath_novalidatecert_params = array( 'lines' => true );
    if(
$Settings->get('repath_encrypt') == 'none' )
    {
       
$repath_novalidatecert_params['disabled'] = 'disabled';
    }
   
$Form->radio_input( 'repath_novalidatecert', $Settings->get( 'repath_novalidatecert' ), array(
            array(
'value' => 1, 'label' => TB_('Do not validate the certificate from the TLS/SSL server. Check this if you are using a self-signed certificate.') ),
            array(
'value' => 0, 'label' => TB_('Validate that the certificate from the TLS/SSL server can be trusted. Use this if you have a correctly signed certificate.') )
        ),
TB_('Certificate validation'), $repath_novalidatecert_params );

   
$Form->text_input( 'repath_server_port', $Settings->get('repath_server_port'), 5, TB_('Port Number'), TB_('Port number of your incoming mail server (Defaults: IMAP4/SSL: 993, IMAP4 with or without TLS: 143, POP3/SSL: 995, POP3 with or without TLS: 110).'), array( 'maxlength' => 6 ) );

   
$Form->text_input( 'repath_username', $Settings->get( 'repath_username' ), 25,
               
TB_('Account Name'), TB_('User name for authenticating on your mail server. Usually it\'s your email address or a part before the @ sign.'), array( 'maxlength' => 255, 'autocomplete' => 'off' ) );

    if(
check_user_perm( 'emails', 'edit' ) )
    {
       
// Disply this fake hidden password field before real because Chrome ignores attribute autocomplete="off"
       
echo '<input type="password" name="password" value="" style="display:none" />';
       
// Real password field:
       
$Form->password_input( 'repath_password', $Settings->get( 'repath_password' ), 25,
                   
TB_('Password'), array( 'maxlength' => 255, 'note' => TB_('Password for authenticating on your mail server.'), 'autocomplete' => 'off' ) );
    }

   
$Form->text_input( 'repath_imap_folder', $Settings->get( 'repath_imap_folder' ), 25,
               
TB_('IMAP Folder'), TB_('Which folder holds your returned email.'), array( 'maxlength' => 255 ) );

   
$Form->checkbox( 'repath_ignore_read', $Settings->get( 'repath_ignore_read' ), TB_('Ignore emails that have already been read'),
               
TB_('Check this in order not to re-process emails that already have the "seen" flag on the server.') );

   
$Form->checkbox( 'repath_delete_emails', $Settings->get( 'repath_delete_emails' ), TB_('Delete processed emails'),
               
TB_('Check this if you want processed messages to be deleted from server after successful processing.') );

   
$Form->textarea( 'repath_subject', $Settings->get( 'repath_subject' ), 5, TB_('Strings to match in titles to identify return path emails'),
               
TB_('Any email that has any of these strings in the title will be detected by b2evolution as the returned emails'), 50 );

   
$Form->textarea( 'repath_body_terminator', $Settings->get('repath_body_terminator'), 5,
               
TB_('Body Terminator'), TB_('Starting from any of these strings, everything will be ignored, including these strings.'), 50 );

   
$Form->textarea( 'repath_errtype', $Settings->get( 'repath_errtype' ), 15, TB_('Error message decoding configuration'),
               
TB_('The first letter means one of the following:<br />S: Spam suspicion<br />P: Permanent error<br />T: Temporary error<br />C: Configuration error<br />U: Unknown error (default)<br />The string after the space is a case-insensitive error text.'), 50 );

$Form->end_fieldset();

if(
check_user_perm( 'emails', 'edit' ) )
{
   
$Form->end_form( array( array( 'submit', '', TB_('Save Changes!'), 'SaveButton' ) ) );
}

?>
<script>
jQuery( document ).ready( function()
{
    jQuery( 'input[name="repath_method"], input[name="repath_encrypt"]' ).click( function()
    {    // Change default port depending on selected retrieval and encryption methods:
        var method = jQuery( 'input[name="repath_method"]:checked' ).val();
        var encrypt = jQuery( 'input[name="repath_encrypt"]:checked' ).val();

        if( method == 'pop3' )
        {
            jQuery( 'input[name="repath_server_port"]' ).val( encrypt == 'ssl' ? '995' : '110' );
        }
        else if( method == 'imap' )
        {
            jQuery( 'input[name="repath_server_port"]' ).val( encrypt == 'ssl' ? '993' : '143' );
        }
    } );

    jQuery( 'input[name="repath_encrypt"]' ).click( function()
    {    // Enable/Disable "Certificate validation" options depending on encryption method
        if( jQuery( this ).val() == 'none' )
        {
            jQuery( 'input[name="repath_novalidatecert"]' ).attr( 'disabled', 'disabled' );
        }
        else
        {
            jQuery( 'input[name="repath_novalidatecert"]' ).removeAttr( 'disabled' );
        }
    } )
} );
</script>