{"id":689,"date":"2021-07-23T12:35:44","date_gmt":"2021-07-23T12:35:44","guid":{"rendered":"https:\/\/ssdsunucum.com\/blog\/how-to-customize-squirrelmail\/"},"modified":"2021-07-23T12:35:44","modified_gmt":"2021-07-23T12:35:44","slug":"how-to-customize-squirrelmail","status":"publish","type":"post","link":"https:\/\/ssdsunucum.com\/blog\/how-to-customize-squirrelmail\/","title":{"rendered":"How to Customize SquirrelMail"},"content":{"rendered":"<\/p>\n<div class=\"col-md-9\">\n<div class=\"flex-column flex-md-row article-header\"><\/div>\n<hr>\n<div class=\"callout callout-danger\">\n<div class=\"callout-heading\">Warnings:<\/div>\n<div class=\"callout-content\">\n<ul>\n<li>This document is <strong>only<\/strong> valid for cPanel &#038; WHM version 72 and earlier.\n<ul>\n<li>We deprecated SquirrelMail and its functionality in cPanel &#038; WHM version 76 and earlier and removed it in cPanel &#038; WHM version 78.<\/li>\n<li>For more information about SquirrelMail\u2019s deprecation and removal, read our cPanel Deprecation Plan documentation.<\/li>\n<\/ul>\n<\/li>\n<li>Because cPanel, L.L.C. doesn\u2019t develop SquirrelMail, cPanel Technical Support can\u2019t help with customization.<\/li>\n<\/ul><\/div>\n<\/div>\n<h2 id=\"overview\">Overview<\/h2>\n<p>This document explains how cPanel &#038; WHM versions 11.44 and earlier update the SquirrelMail webmail application, and how you can customize your SquirrelMail installation.<\/p>\n<div class=\"callout callout-warning\">\n<div class=\"callout-heading\">Important:<\/div>\n<div class=\"callout-content\">\n<ul>\n<li>In cPanel &#038; WHM version 56 through 74, we shipped SquirrelMail as an RPM. To customize your SquirrelMail RPM, follow the directions in the How to Build and Install Custom RPMs documentation.<\/li>\n<li>Customization of SquirrelMail gives you full control over the end user experience. However, cPanel, L.L.C. does <strong>not<\/strong> support these customizations.<\/li>\n<\/ul><\/div>\n<\/div>\n<h2 id=\"general-installation-procedure\">General installation procedure<\/h2>\n<p>Before you customize your SquirrelMail installation, it is useful to understand how cPanel &#038; WHM updates SquirrelMail.<\/p>\n<ol>\n<li>The <code>\/scripts\/upcp<\/code> script runs to update cPanel &#038; WHM.<\/li>\n<li>It also executes the <code>\/usr\/local\/cpanel\/install\/webmail<\/code> script.<\/li>\n<li>The <code>\/usr\/local\/cpanel\/install\/webmail<\/code> script then executes the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script.<\/li>\n<\/ol>\n<p>The <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script performs the following actions:<\/p>\n<ol>\n<li>\n<p>It uses the following command to remove the current SquirrelMail installation:\n<\/p>\n<div class=\"highlight\">\n<pre style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-perl\" data-lang=\"perl\">rm <span style=\"color:#f92672\">-<\/span>rf <span style=\"color:#e6db74\">\/usr\/<\/span>local<span style=\"color:#e6db74\">\/cpanel\/<\/span>base<span style=\"color:#e6db74\">\/3rdparty\/s<\/span>quirrelmail<\/code><\/pre>\n<\/div>\n<\/li>\n<li>\n<p>It extracts the appropriate SquirrelMail source tarball to the <code>\/usr\/local\/cpanel\/base\/3rdparty\/<\/code> directory.<\/p>\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Note:<\/div>\n<div class=\"callout-content\">\n<p>For more information, read the Where to place a custom SquirrelMail tarball section below.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<li>\n<p>It changes the ownership of the SquirrelMail installation to the <code>root<\/code> user and the <code>wheel<\/code> group.<\/p>\n<\/li>\n<li>\n<p>It changes the SquirrelMail data directory\u2019s permissions to <code>755<\/code>.<\/p>\n<\/li>\n<li>\n<p>It checks for the existence of the <code>\/var\/cpanel\/squirrelmail\/install<\/code> file.<\/p>\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Note:<\/div>\n<div class=\"callout-content\">\n<p>For more information, read the Prevent changes to the SquirrelMail configuration files section below.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<li>\n<p>It extracts IMAP configuration values and copies them into place.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"prevent-changes-to-the-squirrelmail-configuration-files\">Prevent changes to the SquirrelMail configuration files<\/h3>\n<p>During Step 5 of the installation procedure, the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script checks for the existence of the <code>\/var\/cpanel\/squirrelmail\/install<\/code> file.<\/p>\n<ul>\n<li>\n<p>If that file exists and is executable, the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script executes it and terminates.<\/p>\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Notes:<\/div>\n<div class=\"callout-content\">\n<ul>\n<li>This bypasses cPanel &#038; WHM\u2019s manipulation of the SquirrelMail configuration files.<\/li>\n<li>Step 6 of the installation procedure does <strong>not<\/strong> occur.<br \/>\n<\/li>\n<\/ul><\/div>\n<\/div>\n<\/li>\n<li>\n<p>If the <code>\/var\/cpanel\/squirrelmail\/install<\/code> file exists but is <strong>not<\/strong> executable, the file contents print to <code>STDOUT<\/code> and the normal cPanel &#038; WHM configuration of SquirrelMail continues for the remaining steps.<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"install-a-customized-instance-of-squirrelmail\">Install a customized instance of SquirrelMail<\/h2>\n<p>There are several ways to customize the SquirrelMail installation. For instructions on how to create a custom SquirrelMail tarball, read the SquirrelMail documentation.<\/p>\n<h3 id=\"where-to-place-a-custom-squirrelmail-tarball\">Where to place a custom SquirrelMail tarball<\/h3>\n<p>For more information about how to place a custom SquirrelMail tarball, read the following non-sequential steps:<\/p>\n<ul>\n<li>\n<p>When the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script runs, it checks for custom SquirrelMail tarballs. The following list lists the locations it checks:<\/p>\n<ul>\n<li><code>\/var\/cpanel\/squirrelmail\/squirrelmail-$sqversion-local.tar.gz<\/code> \u2014 Use this location for a compressed tarball that you want to apply to a specific SquirrelMail version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/squirrelmail-$sqversion-local.tar<\/code> \u2014 Use this location for an uncompressed tarball that you want to apply to a specific SquirrelMail version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/squirrelmail-local.tar.gz<\/code> \u2014 Use this location for a compressed tarball that you want to apply to SquirrelMail regardless of version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/squirrelmail-local.tar<\/code> \u2014 Use this location for an uncompressed tarball that you want to apply to SquirrelMail regardless of version.\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Notes:<\/div>\n<div class=\"callout-content\">\n<p>If any of those tarballs exist, the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script uses that tarball instead of the cPanel-supplied tarball. cPanel &#038; WHM uses the locations in the above list in the listed order.<br \/>\n  For example, if the following statements are true, cPanel &#038; WHM uses the <code>\/var\/cpanel\/squirrelmail\/squirrelmail-1.49a-local.tar.gz<\/code> file:<br \/>\n  * Both the <code>\/var\/cpanel\/squirrelmail\/squirrelmail-local.tar<\/code> and <code>\/var\/cpanel\/squirrelmail\/squirrelmail-1.49a-local.tar.gz<\/code> files exist.<br \/>\n  * The <code>\/var\/cpanel\/squirrelmail\/squirrelmail-1.49a-local.tar.gz<\/code> file\u2019s version number is specified in the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>The value that <code>$sqversion<\/code> represents in these locations <strong>must<\/strong> match the <code>sqversion<\/code> variable that the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script defines. For example, if the <code>sqversion<\/code> parameter is set to the <code>1.49a<\/code> version in the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script, save your custom tarball as the <code>squirrelmail-1.49a-local.tar.gz<\/code> file.<\/p>\n<div class=\"callout callout-warning\">\n<div class=\"callout-heading\">Important:<\/div>\n<div class=\"callout-content\">\n<p>These tarballs <strong>must<\/strong> extract to the <code>\/usr\/local\/cpanel\/base\/3rdparty\/squirrelmail\/<\/code> directory.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<\/ul>\n<h3 id=\"where-to-place-a-custom-overlay-file\">Where to place a custom overlay file<\/h3>\n<p>For more information about how to place a custom overlay file, read the following non-sequential steps:<\/p>\n<ul>\n<li>\n<p>The overlay tarball allows you to customize specific aspects of SquirrelMail.<\/p>\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Note:<\/div>\n<div class=\"callout-content\">\n<p>For example, you can use an overlay to change graphics, themes, or plugins.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<li>\n<p>The overlay does <strong>not<\/strong> need to contain a complete SquirrelMail distribution. It only needs to contain the components that you wish to modify, because cPanel &#038; WHM overlays it onto the SquirrelMail installation.<\/p>\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Note:<\/div>\n<div class=\"callout-content\">\n<p>For example, it can contain one image file. However, it <strong>must<\/strong> contain a directory structure that mimics the structure of the <code>\/usr\/local\/cpanel\/base\/3rdparty\/squirrelmail<\/code> directory, that that starts with <code>squirrelmail<\/code>.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<li>\n<p>Once you determine which tarball to use for the source install and extract it, the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script checks for the following files:<\/p>\n<ul>\n<li><code>\/var\/cpanel\/squirrelmail\/overlay.$sqversion.tar.gz<\/code> \u2014 Use this location for a compressed overlay you want to apply to a specific SquirrelMail version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/overlay.$sqversion.tar<\/code> \u2014 Use this location for an uncompressed overlay you want to apply to a specific SquirrelMail version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/overlay.tar.gz<\/code> \u2014 Use this location for a compressed overlay you want to apply to SquirrelMail regardless of version.<\/li>\n<li><code>\/var\/cpanel\/squirrelmail\/overlay.tar<\/code> \u2014 Use this location for an uncompressed overlay you want to apply to SquirrelMail regardless of version.\n<div class=\"callout callout-info\">\n<div class=\"callout-heading\">Note:<\/div>\n<div class=\"callout-content\">\n<p>As with the custom SquirrelMail tarballs above, the following statements are true:<br \/>\n  * If the script locates multiple tarballs, it will use them in the order that is listed above.<br \/>\n  * The value of the <code>$sqversion<\/code> variable <strong>must<\/strong> match the version number that the <code>\/usr\/local\/cpanel\/bin\/update-squirrelmail<\/code> script specifies.<\/p>\n<\/p><\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"install-squirrelmail-plugins\">Install SquirrelMail plugins<\/h2>\n<p>To enable a SquirrelMail plugin, perform the following steps:<\/p>\n<ol>\n<li>\n<p>Run the <code>\/usr\/local\/cpanel\/base\/3rdparty\/squirrelmail\/config\/conf.pl<\/code> command to open the SquirrelMail Configuration menu.<\/p>\n<\/li>\n<li>\n<p>Enter the number of the <code>Plugins<\/code> option. The code block below lists the available SquirrelMail plugins that appear:\n<\/p>\n<div class=\"highlight\">\n<div style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4\">\n<table style=\"border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;\">\n<tr>\n<td style=\"vertical-align:top;padding:0;margin:0;border:0;\">\n<pre style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-go\" data-lang=\"go\"><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">19\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">20\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">21\n<\/span><span style=\"margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">22\n<\/span><\/code><\/pre>\n<\/td>\n<td style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\">\n<pre style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-go\" data-lang=\"go\">  <span style=\"color:#a6e22e\">Plugins<\/span>\n  <span style=\"color:#a6e22e\">Installed<\/span> <span style=\"color:#a6e22e\">Plugins<\/span>\n    <span style=\"color:#ae81ff\">1.<\/span> <span style=\"color:#a6e22e\">Login<\/span> <span style=\"color:#a6e22e\">Authentication<\/span> (<span style=\"color:#a6e22e\">login_auth<\/span>) <span style=\"color:#ae81ff\">3.0<\/span>\n  <span style=\"color:#a6e22e\">Available<\/span> <span style=\"color:#a6e22e\">Plugins<\/span>:\n    <span style=\"color:#ae81ff\">2.<\/span> <span style=\"color:#a6e22e\">administrator<\/span>\n    <span style=\"color:#ae81ff\">3.<\/span> <span style=\"color:#a6e22e\">Bug<\/span> <span style=\"color:#a6e22e\">Report<\/span> (<span style=\"color:#a6e22e\">bug_report<\/span>) <span style=\"color:#a6e22e\">CORE<\/span>\n    <span style=\"color:#ae81ff\">4.<\/span> <span style=\"color:#a6e22e\">calendar<\/span>\n    <span style=\"color:#ae81ff\">5.<\/span> <span style=\"color:#a6e22e\">change_password<\/span> <span style=\"color:#ae81ff\">0.2<\/span>\n    <span style=\"color:#ae81ff\">6.<\/span> <span style=\"color:#a6e22e\">Demo<\/span> (<span style=\"color:#a6e22e\">demo<\/span>) <span style=\"color:#a6e22e\">CORE<\/span>\n    <span style=\"color:#ae81ff\">7.<\/span> <span style=\"color:#a6e22e\">filters<\/span>\n    <span style=\"color:#ae81ff\">8.<\/span> <span style=\"color:#a6e22e\">fortune<\/span>\n    <span style=\"color:#ae81ff\">9.<\/span> <span style=\"color:#a6e22e\">info<\/span>\n    <span style=\"color:#ae81ff\">10.<\/span> <span style=\"color:#a6e22e\">listcommands<\/span>\n    <span style=\"color:#ae81ff\">11.<\/span> <span style=\"color:#a6e22e\">mail_fetch<\/span>\n    <span style=\"color:#ae81ff\">12.<\/span> <span style=\"color:#a6e22e\">message_details<\/span>\n    <span style=\"color:#ae81ff\">13.<\/span> <span style=\"color:#a6e22e\">New<\/span> <span style=\"color:#a6e22e\">Mail<\/span> (<span style=\"color:#a6e22e\">newmail<\/span>) <span style=\"color:#a6e22e\">CORE<\/span>\n    <span style=\"color:#ae81ff\">14.<\/span> <span style=\"color:#a6e22e\">Preview<\/span> <span style=\"color:#a6e22e\">Pane<\/span> (<span style=\"color:#a6e22e\">preview_pane<\/span>) <span style=\"color:#ae81ff\">2.0<\/span>\n    <span style=\"color:#ae81ff\">15.<\/span> <span style=\"color:#a6e22e\">sent_subfolders<\/span>\n    <span style=\"color:#ae81ff\">16.<\/span> <span style=\"color:#a6e22e\">spamcop<\/span>\n    <span style=\"color:#ae81ff\">17.<\/span> <span style=\"color:#a6e22e\">squirrelspell<\/span> <span style=\"color:#ae81ff\">0.5<\/span>\n    <span style=\"color:#ae81ff\">18.<\/span> <span style=\"color:#a6e22e\">Test<\/span> (<span style=\"color:#a6e22e\">test<\/span>) <span style=\"color:#a6e22e\">CORE<\/span>\n    <span style=\"color:#ae81ff\">19.<\/span> <span style=\"color:#a6e22e\">translate<\/span><\/code><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>Enter the number of the plugin that you wish to install.<\/p>\n<\/li>\n<li>\n<p>Save your changes and exit the SquirrelMail Configuration menu.<\/p>\n<\/li>\n<\/ol>\n<p>To test your new SquirrelMail configuration, navigate to <code>example.com\/sessionid\/3rdparty\/SquirrelMail\/src\/configtest.php<\/code>, where <code>example.com<\/code> represents your domain name, and <code>sessionid<\/code> represents your current security token.<\/p>\n<div class=\"callout callout-warning\">\n<div class=\"callout-heading\">Important:<\/div>\n<div class=\"callout-content\">\n<p>Before you run the configuration test for SquirrelMail from a remote server, you <strong>must<\/strong> add the following line to the <code>\/usr\/local\/cpanel\/base\/3rdparty\/squirrelmail\/config\/config_local.php<\/code> file:\n<\/p>\n<div class=\"highlight\">\n<pre style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-go\" data-lang=\"go\">    <span style=\"color:#960050;background-color:#1e0010\">$<\/span><span style=\"color:#a6e22e\">allow_remote_configtest<\/span> = <span style=\"color:#66d9ef\">true<\/span>;<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Warnings: This document is only valid for cPanel &#038; WHM version 72 and earlier. We deprecated SquirrelMail and its functionality in cPanel &#038; WHM version 76 and earlier and removed it in cPanel &#038; WHM version 78. For more information about SquirrelMail\u2019s deprecation and removal, read our cPanel Deprecation Plan documentation. Because cPanel, L.L.C. doesn\u2019t &hellip;<\/p>\n","protected":false},"author":1,"featured_media":690,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/posts\/689"}],"collection":[{"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/comments?post=689"}],"version-history":[{"count":0,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/posts\/689\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/media\/690"}],"wp:attachment":[{"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/media?parent=689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/categories?post=689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ssdsunucum.com\/blog\/wp-json\/wp\/v2\/tags?post=689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}