Essa pergunta me deixou perplexo por um longo tempo. Meses atrás eu não consegui encontrar a resposta e acabei de editar /usr/local/cpanel/base/horde/imp/config/mime_drivers.php
, especificamente alterando a seção:
$mime_drivers['imp']['html'] = array(
'inline' => false,
para:
$mime_drivers['imp']['html'] = array(
'inline' => true,
Como eu temia, toda vez que o cPanel atualizava a Horda, essa mudança seria perdida e meus usuários reclamariam. Agora, eu acredito que eu encontrei uma solução. (No entanto, a Horde ainda não foi atualizada, por isso não posso dizer com certeza se isso funciona).
Depois de incluir imp/config/mime_drivers.php
, a Horde verificará um diretório imp/config/mime_drivers.d/
e, se encontrado, include()
de todos os arquivos terminados em .php
nesse diretório. Este diretório não existe no cPanel, por isso pode ser criado sem medo de ser sobrescrito .
O arquivo /usr/local/cpanel/src/3rdparty/gpl/README-horde
contém detalhes sobre como o cPanel atualiza o Horde, além de instruções sobre como personalizar o Horde. Algumas exceções relevantes desse arquivo fornecem pistas sobre como fazer as personalizações que eu queria permanentemente:
During the maintenance phase of /scripts/upcp and /scripts/maintenance, the webmail script found at /usr/local/cpanel/install/webmail is executed. This in turn executes /usr/local/cpanel/bin/update-horde. Presented below is an outline of steps update-horde performs:
- The Horde installation is wiped clean (rm -rf /usr/local/cpanel/base/horde).
- Using the version specified in update-horde, the appropriate Horde source tarball will be extracted to /usr/local/cpanel/base.
[...]
After determining which tarball to use for the source install, and extracting it, the update-horde script checks for the following:
o /var/cpanel/horde/overlay.tar o /var/cpanel/horde/overlay.tar.gz o /var/cpanel/horde/overlay.$hordever.tar o /var/cpanel/horde/overlay.$hordever.tar.gz
As with the prior tarballs, the value of $hordever must match what is defined in the update-horde script. The overlay tarball provides a simple way of customizing specific aspects of Horde. For example, certain graphics, themes, modules, plugins and the like can all be provided as an overlay. Since it is extracted into /usr/local/cpanel/base, the contents of the tarball must match the directory layout found in /usr/local/cpanel/base/horde.
A partir desse arquivo, descobri que as seguintes etapas para substituir a configuração de exibição de HTML in-line são as seguintes:
tl; dr: aqui estão os passos:
-
Em um diretório temporário, crie a estrutura de diretório
horde/imp/config/mime_drivers.d/
que o cPanel espera:mkdir -p /tmp/horde/imp/config/mime_drivers.d
-
Crie um arquivo de substituição nesse novo diretório. Eu nomeei o meu
html.php
, mas você pode nomear o que quiser, contanto que ele termine em.php
-
Insira o seguinte conteúdo em
/tmp/horde/imp/config/mime_drivers.d/html.php
:<?php /** * HTML driver settings */ $mime_drivers['imp']['html'] = array( 'inline' => true, 'handles' => array( 'text/html' ), 'icons' => array( 'default' => 'html.png' ), /* If you don't want to display the link to open the HTML content in a * separate window, set the following to false. */ 'external' => true, /* Run 'tidy' on all HTML output? This requires at least version 2.0 of the * PECL 'tidy' extension to be installed on your system. */ 'tidy' => false, /* Check for phishing exploits? */ 'phishing_check' => true );
-
Crie uma versão
.tar.gz
do diretório/tmp/horde
em/var/cpanel/horde/overlay.tar.gz
:cd /tmp tar -czvf /var/cpanel/horde/overlay.tar.gz horde
Este arquivo deve ser expandido pelo cPanel toda vez que o Horde for atualizado, adicionando novamente sua substituição de configuração.
-
Mova o
/tmp/horde/imp/config/mime_drivers.d/
para o lugar:mv /tmp/horde/imp/config/mime_drivers.d /usr/local/cpanel/base/horde/imp/config/
-
Faça login na Horde para testar.