Defeito #264
Erro ao obter quota de email
Situação:
Fechada
Prioridade:
Normal
Atribuído para:
Categoria:
ExpressoMail
Início:
16/04/2018
Data prevista:
% Terminado:
100%
Descrição
Corrigir o seguinte Php Warning:
imap_get_quotaroot(): c-client imap_getquotaroot failed in /var/www/expresso/expressoMail1_2/inc/class.imap_functions.inc.php on line 3283, referer: https://expresso.pr.gov.br/expressoMail1_2/index.php
Revisões associadas
Issue #264 - Ocultação de warning no imap_get_quotaroot
Histórico
#1 Atualizado por Mauricio Luiz Viani há mais de 6 anos
- Versão alterado de Expresso Livre - Milestone 18 para Expresso Livre - Milestone 19
#2 Atualizado por Mauricio Luiz Viani há mais de 6 anos
- Versão alterado de Expresso Livre - Milestone 19 para Expresso Livre - Milestone 20
#3 Atualizado por Mauricio Luiz Viani há mais de 6 anos
Foi aplicado o seguinte patch em produção para capturar dados do erro:
diff --git a/expressoMail1_2/inc/class.imap_functions.inc.php b/expressoMail1_2/inc/class.imap_functions.inc.php index 350d948..85e1d72 100755 --- a/expressoMail1_2/inc/class.imap_functions.inc.php +++ b/expressoMail1_2/inc/class.imap_functions.inc.php @@ -3303,12 +3303,21 @@ class imap_functions if(!$this->mbox || !is_resource($this->mbox)) $this->mbox = $this->open_mbox(); - $quota = imap_get_quotaroot( $this->mbox, $folder_id ); + try { + $quota = imap_get_quotaroot( $this->mbox, $folder_id ); + } catch ( Exception $e ) { + error_log(print_r($e->getMessage(), true) . PHP_EOL, 3, '/tmp/log_imap_get_quotaroot.log'); + error_log(print_r($this->mbox, true) . PHP_EOL, 3, '/tmp/log_imap_get_quotaroot.log'); + error_log(print_r($folder_id, true) . PHP_EOL, 3, '/tmp/log_imap_get_quotaroot.log'); + error_log(print_r($this->fullNameUser, true) . PHP_EOL, 3, '/tmp/log_imap_get_quotaroot.log'); + error_log(print_r("-------", true) . PHP_EOL, 3, '/tmp/log_imap_get_quotaroot.log'); + } + if ( $this->mbox && is_resource( $this->mbox ) ) $this->close_mbox( $this->mbox ); - + // Auto raise to default user quota, configured in expressoAdmin if ( - ( isset($_SESSION['phpgw_info']['expresso']['expressoAdmin']['expressoAdmin_autoRaiseQuota']) && + ( isset($_SESSION['phpgw_info']['expresso']['expressoAdmin']['expressoAdmin_autoRaiseQuota']) && $_SESSION['phpgw_info']['expresso']['expressoAdmin']['expressoAdmin_autoRaiseQuota'] === 'true' ) && ( isset( $quota['limit'] ) ) && ( $quota['limit'] < (
#4 Atualizado por Mauricio Luiz Viani há mais de 6 anos
- Situação alterado de Nova para Resolvida
- % Terminado alterado de 0 para 80
#5 Atualizado por Mauricio Luiz Viani há mais de 6 anos
- % Terminado alterado de 80 para 100
- Situação alterado de Resolvida para Fechada
- Atribuído para ajustado para Mauricio Luiz Viani
O try ... catch foi deixado em funcionamento por dois dias e não pegou nenhum warning. Consultando no log não apareceu mais nenhuma ocorrência da mensagem.