Ticket #954 (closed defeito: fixed)

Opened 14 years ago

Last modified 14 years ago

Problemas no envio de mensagens com tamanho dos anexos entre 10 e 20 mb.

Reported by: diogenesduarte Owned by: diogenesduarte
Priority: média Milestone: Expresso 2.1
Component: ExpressoMail Version: trunk
Severity: Keywords:
Cc: WorkGroup:

Description

Ao enviar mensagens com tamanho um pouco maior que 10 mb o expresso informa que o tamanho da mensagem é superior a 20 mb(configuração padrão do expresso para tamanho máximo de mensagens) e o envio não é feito. Se a mensagem tiver entre 15 mb e 20 mb, um erro ocorre porém não é apresentado, a tela fica parada e o e-mail não é enviado. A partir daí ocorrem alguns erros de script e para utilizar o expresso normalmente é necessário atualizar a página.

Change History

comment:1 Changed 14 years ago by niltonneto

É importante lembrar que os anexos das mensagens, devido ao formato MIME, são enviados em base64. Costumam ser 37% maior que o tamanho original do arquivo. Ex.: Um anexo de 10Mb precisa ter no mínimo 13.7Mb de tamanho máximo (post/upload) no Expresso.

comment:2 Changed 14 years ago by diogenesduarte

Acho que cabe uma discussão aqui sobre esse problema, que eu dividiria em dois.
Primeiro que o expresso utiliza a diretiva do php upload_max_filesize para determinar o tamanho máximo dos anexos, quando existe também uma diretiva do postfix chamada message_size_limit que delimita o tamanho máximo da mensagem e por padrão seu valor é 10 MB. Isso faz com que mensagens maiores que 10 MB gerem erro no envio, e a mensagem do expresso como leva em conta a diretiva do php, apresenta o erro de forma errada. Acho que a melhor forma de resolver isso seria igualar o valor das duas diretivas como padrão do expresso.
Segundo, seguindo na mesma linha, quando um único anexo tem mais de 15 megas, é feito um str_replace na classe smtp(class.smtp.php linha 308) que faz com que estoure o limite de memória estipulado pela diretiva memory_limit do php. Por padrão na instalação do expresso seu valor é 96MB. Como essa exceção não é tratada, acontece um erro de script e nada funciona direito até o usuário atualizar a página. Após alguns testes encontramos o valor de 128MB como satisfatório.

Seria o caso modificar a instalação do expresso para mudar esses valores padrões na instalação? Se sim, como fazer isso?

comment:3 Changed 14 years ago by niltonneto

Se na instalação padrão do Expresso isso está ocorrendo, então podemos mudar sim, com certeza. É só alterar o arquivo php em /doc-expressolivre/debian/arqs-conf/etc/php5/apache2 e demais distros.

comment:4 Changed 14 years ago by diogenesduarte

  • Owner changed from alguem to diogenesduarte

comment:5 follow-up: ↓ 6 Changed 14 years ago by diogenesduarte

Commit feito na revisão [2109].

comment:6 in reply to: ↑ 5 Changed 14 years ago by diogenesduarte

Corrigindo, a revisão foi a [2190].

Replying to diogenesduarte:

Commit feito na revisão [2109].

comment:7 Changed 14 years ago by diogenesduarte

Replicado no branch 2.1 em [2194]. Não seria interessante fazer isso também no branch 2.0? Lembrando também que quem já tem o expresso instalado, possui esse problema e tem que modificar essas configurações manualmente.

comment:8 Changed 14 years ago by niltonneto

Replicado no Branch 2.0 [2242] [2243].

comment:9 Changed 14 years ago by diogenesduarte

  • Status changed from new to closed
  • Resolution set to fixed

Acho que já podemos fechar então.

Note: See TracTickets for help on using tickets.