HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/slfopp7cb1df/www/sitepacket.com/system/app/Views/settings/tickets/imap_settings.php
<?php echo form_open(get_uri("settings/save_imap_settings"), array("id" => "imap-settings-form", "class" => "general-form dashed-row", "role" => "form")); ?>

<?php
$php_version_success = false;
$php_version_required = "7.0.0";
$current_php_version = PHP_VERSION;

//check required php version
if (version_compare($current_php_version, $php_version_required) >= 0) {
    $php_version_success = true;
}

//check imap extension existence
$imap_extension_success = extension_loaded("imap") ? true : false;
?>

<div class="mb0">

    <?php if ($php_version_success && $imap_extension_success) { ?>

        <div class="card-body">

            <div class="form-group">
                <div class="row">
                    <div class="col-md-12">
                        <i data-feather='info' class="icon-16"></i> <?php echo app_lang("imap_help_message_1"); ?> <br />
                        <?php echo app_lang("imap_help_message_2") . " " . anchor(get_uri("email_templates"), ucfirst(app_lang("email_templates")) . " " . strtolower(app_lang("settings")), array("target" => "_blank")) . "."; ?>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <div class="row">
                    <label for="enable_email_piping" class="col-md-3">
                        <?php echo app_lang('enable_email_piping'); ?>
                        <span class="help" data-bs-toggle="tooltip" title="<?php echo app_lang('cron_job_required'); ?>"><i data-feather='help-circle' class="icon-16"></i></span>
                    </label>
                    <div class="col-md-9">
                        <?php
                        echo form_checkbox("enable_email_piping", "1", get_setting("enable_email_piping") ? true : false, "id='enable_email_piping' class='form-check-input'");
                        ?>
                    </div>
                </div>
            </div>
            <div id="imap-details" class="<?php echo get_setting("enable_email_piping") ? "" : "hide"; ?>">
                <div class="form-group">
                    <div class="row">
                        <label for="create_tickets_only_by_registered_emails" class="col-md-3"><?php echo app_lang('create_tickets_only_by_registered_emails'); ?></label>
                        <div class="col-md-9">
                            <?php
                            echo form_checkbox("create_tickets_only_by_registered_emails", "1", get_setting("create_tickets_only_by_registered_emails") ? true : false, "id='create_tickets_only_by_registered_emails' class='form-check-input'");
                            ?>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="row">
                        <label for="imap_type" class=" col-md-3"><?php echo app_lang('type'); ?></label>
                        <div class=" col-md-9">
                            <?php
                            $imap_types = array(
                                "general_imap" => app_lang("general") . " IMAP",
                                "microsoft_outlook" => "Microsoft Outlook",
                                "gmail_imap" => "Gmail API",
                            );
                            echo form_dropdown(
                                "imap_type",
                                $imap_types,
                                get_setting('imap_type'),
                                "class='select2 mini' id='imap-type'"
                            );
                            ?>
                        </div>
                    </div>
                </div>

                <div id="general-imap-area" class="<?php echo (!get_setting('imap_type') || get_setting('imap_type') === "general_imap") ? "" : "hide"; ?>">
                    <div class="form-group">
                        <div class="row">
                            <label for="imap_encryption" class=" col-md-3">
                                <?php echo app_lang('encryption'); ?>
                                <span class="help" data-bs-toggle="tooltip" title="<?php echo app_lang('imap_encryption_help_message'); ?>"><i data-feather='help-circle' class="icon-16"></i></span>
                            </label>
                            <div class=" col-md-9">
                                <?php
                                $imap_encryptions = array(
                                    "imap/ssl/validate-cert" => "imap/ssl/validate-cert",
                                    "novalidate-cert" => "novalidate-cert",
                                    "ssl/validate-cert" => "ssl/validate-cert",
                                    "ssl/novalidate-cert" => "ssl/novalidate-cert",
                                    "validate-cert" => "validate-cert",
                                );
                                echo form_dropdown(
                                    "imap_encryption",
                                    $imap_encryptions,
                                    get_setting('imap_encryption'),
                                    "class='select2 mini'"
                                );
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="row">
                            <label for="imap_host" class=" col-md-3"><?php echo app_lang('imap_host'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "imap_host",
                                    "name" => "imap_host",
                                    "value" => get_setting("imap_host"),
                                    "class" => "form-control",
                                    "placeholder" => app_lang('imap_host'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required")
                                ));
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="row">
                            <label for="imap_port" class=" col-md-3"><?php echo app_lang('imap_port'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "imap_port",
                                    "name" => "imap_port",
                                    "value" => get_setting("imap_port"),
                                    "class" => "form-control",
                                    "placeholder" => app_lang('imap_port'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required")
                                ));
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="row">
                            <label for="imap_email" class=" col-md-3"><?php echo app_lang("username") . "/" . app_lang('email'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "imap_email",
                                    "name" => "imap_email",
                                    "value" => get_setting("imap_email"),
                                    "class" => "form-control",
                                    "placeholder" => app_lang("username") . "/" . app_lang('email'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required")
                                ));
                                ?>
                                <span class="mt10 d-inline-block"><i data-feather='alert-triangle' class="icon-16 text-warning"></i> <?php echo app_lang("email_piping_help_message"); ?></span>
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="row">
                            <label for="imap_password" class=" col-md-3"><?php echo app_lang('password'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_password(array(
                                    "id" => "imap_password",
                                    "name" => "imap_password",
                                    "class" => "form-control",
                                    "value" => get_setting('imap_password') ? "******" : "",
                                    "placeholder" => app_lang('password'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required")
                                ));
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group"></div> <!-- to prevent border issue-->
                </div>

                <div id="microsoft-outlook-area" class="<?php echo get_setting('imap_type') === "microsoft_outlook" ? "" : "hide"; ?>">
                    <div class="form-group">
                        <div class="row">
                            <label class=" col-md-12">
                                <?php echo app_lang("get_your_app_credentials_from_here") . " " . anchor("https://portal.azure.com/", "Microsoft Azure Portal", array("target" => "_blank")); ?>
                            </label>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="outlook_imap_client_id" class=" col-md-3"><?php echo app_lang('google_client_id'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "outlook_imap_client_id",
                                    "name" => "outlook_imap_client_id",
                                    "value" => get_setting("outlook_imap_client_id"),
                                    "class" => "form-control",
                                    "placeholder" => app_lang('google_client_id'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required"),
                                ));
                                ?>
                            </div>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="outlook_imap_client_secret" class=" col-md-3"><?php echo app_lang('google_client_secret'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "outlook_imap_client_secret",
                                    "name" => "outlook_imap_client_secret",
                                    "value" => get_setting('outlook_imap_client_secret') ? "******" : "",
                                    "class" => "form-control",
                                    "placeholder" => app_lang('google_client_secret'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required"),
                                ));
                                ?>
                            </div>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="redirect_uri" class=" col-md-3"><i data-feather="alert-triangle" class="icon-16 text-warning"></i> <?php echo app_lang('remember_to_add_this_url_in_authorized_redirect_uri'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo "<pre class='mt5'>" . get_uri("microsoft_api/save_outlook_imap_access_token") . "</pre>"
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group"></div> <!-- to prevent border issue-->
                </div>

                <div id="gmail-imap-area" class="<?php echo get_setting("imap_type") === "gmail_imap" ? "" : "hide"; ?>">
                    <div class="form-group">
                        <div class="row">
                            <label class=" col-md-12">
                                <?php echo app_lang("get_your_app_credentials_from_here") . " " . anchor("https://console.developers.google.com", "Google API Console", array("target" => "_blank")); ?>
                            </label>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="gmail_imap_client_id" class=" col-md-3"><?php echo app_lang('google_client_id'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "gmail_imap_client_id",
                                    "name" => "gmail_imap_client_id",
                                    "value" => get_setting("gmail_imap_client_id"),
                                    "class" => "form-control",
                                    "placeholder" => app_lang('google_client_id'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required"),
                                ));
                                ?>
                            </div>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="gmail_imap_client_secret" class=" col-md-3"><?php echo app_lang('google_client_secret'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo form_input(array(
                                    "id" => "gmail_imap_client_secret",
                                    "name" => "gmail_imap_client_secret",
                                    "value" => get_setting("gmail_imap_client_secret") ? "******" : "",
                                    "class" => "form-control",
                                    "placeholder" => app_lang('google_client_secret'),
                                    "data-rule-required" => true,
                                    "data-msg-required" => app_lang("field_required"),
                                ));
                                ?>
                            </div>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="row">
                            <label for="redirect_uri" class=" col-md-3"><i data-feather="alert-triangle" class="icon-16 text-warning"></i> <?php echo app_lang('remember_to_add_this_url_in_authorized_redirect_uri'); ?></label>
                            <div class=" col-md-9">
                                <?php
                                echo "<pre class='mt5'>" . get_uri("google_api/save_gmail_imap_access_token") . "</pre>"
                                ?>
                            </div>
                        </div>
                    </div>
                    <div class="form-group"></div> <!-- to prevent border issue-->
                </div>

                <div class="form-group">
                    <div class="row">
                        <label for="status" class=" col-md-3"><?php echo app_lang('status'); ?></label>
                        <div class=" col-md-9">
                            <?php if (get_setting("imap_authorized")) { ?>
                                <span class="ml5 badge bg-success"><?php echo app_lang("authorized"); ?></span>
                            <?php } else { ?>
                                <span class="ml5 badge" style="background:#F9A52D;"><?php echo app_lang("unauthorized"); ?></span>
                            <?php } ?>

                            <?php if (get_setting("imap_failed_login_attempts_count")) { ?>
                                <span class="ml5 badge" style="background:#F9A52D;"><?php echo get_setting("imap_failed_login_attempts_count") . " " . app_lang("login_attempt_failed"); ?></span>
                            <?php } ?>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="card-footer">
            <button id="save-button" type="submit" class="btn btn-primary <?php echo get_setting("enable_email_piping") ? "hide" : "" ?>"><span data-feather='check-circle' class="icon-16"></span> <?php echo app_lang('save'); ?></button>
            <button id="save-and-authorize-button" type="submit" class="btn btn-primary ml5 <?php echo get_setting("enable_email_piping") ? "" : "hide" ?>"><span data-feather='check-circle' class="icon-16"></span> <?php echo app_lang('save_and_authorize'); ?></button>
        </div>

    <?php } else { ?>

        <div class="card-body">
            <i data-feather='alert-triangle' class="icon-16 text-danger"></i>
            <?php
            if (!$php_version_success) {
                echo app_lang("please_upgrade_your_php_version") . " " . app_lang("current_version") . ": <b>" . $current_php_version . "</b> " . app_lang("required_version") . ": <b>" . $php_version_required . "+</b> ";
            } else {
                echo app_lang("imap_extension_error_help_message");
            }
            ?>
        </div>

    <?php } ?>

</div>
<?php echo form_close(); ?>

<script type="text/javascript">
    $(document).ready(function() {
        var $saveAndAuthorizeBtn = $("#save-and-authorize-button"),
            $saveBtn = $("#save-button"),
            $imapDetailsArea = $("#imap-details");

        $("#imap-settings-form").appForm({
            isModal: false,
            onSuccess: function(result) {
                appAlert.success(result.message, {
                    duration: 10000
                });

                //if imap is enabled, redirect to authorization system
                if ($saveBtn.hasClass("hide")) {
                    
                    var imapType = $("#imap-type").val();

                    if (imapType === "general_imap") {
                        window.location.href = "<?php echo_uri('settings/authorize_imap'); ?>";
                    } else if (imapType === "microsoft_outlook") {
                        window.location.href = "<?php echo_uri('microsoft_api/authorize_outlook_imap'); ?>";
                    } else {
                        window.location.href = "<?php echo_uri('google_api/authorize_gmail_imap'); ?>";
                    }
                }
            }
        });

        $("#imap-settings-form .select2").select2();

        //show/hide imap details area
        $("#enable_email_piping").click(function() {
            if ($(this).is(":checked")) {
                $imapDetailsArea.removeClass("hide");
                $saveAndAuthorizeBtn.removeClass("hide");
                $saveBtn.addClass("hide");
            } else {
                $imapDetailsArea.addClass("hide");
                $saveAndAuthorizeBtn.addClass("hide");
                $saveBtn.removeClass("hide");
            }
        });

        $('[data-bs-toggle="tooltip"]').tooltip();

        $("#imap-type").select2().on("change", function() {
            var value = $(this).val();
            if (value === "general_imap") {

                $("#general-imap-area").removeClass("hide");
                $("#microsoft-outlook-area").addClass("hide");
                $("#gmail-imap-area").addClass("hide");
            } else if (value === "microsoft_outlook") {

                $("#general-imap-area").addClass("hide");
                $("#microsoft-outlook-area").removeClass("hide");
                $("#gmail-imap-area").addClass("hide");
            } else {
                
                $("#general-imap-area").addClass("hide");
                $("#microsoft-outlook-area").addClass("hide");
                $("#gmail-imap-area").removeClass("hide");
            }
        });
    });
</script>