Roundcube 限制附件低于声明的限制

Roundcube 限制附件低于声明的限制

我有以下规格的邮件服务器:

  • Centos 7
  • Roundcube 1.3.5
  • MTA Postfix 2.10.1

我已将附件上传大小限制为 5M:

  • /etc/php.ini =>上传最大文件大小 = 10M,上传最大文件大小 = 5M
  • Roundcube => config.php:$config['最大消息大小'] = 5M
  • 后缀 => main.cf :消息大小限制= 5242880

据我所知,此配置应该允许附加 5Mb 的文件,但我甚至无法附加小于 5Mb 的文件大小。请帮忙

编辑:我可以发送带有 4 MB 大小附件的电子邮件。如果我将 roundcube 配置增加到 6 MB,那么我就可以附加和发送 5Mb 文件大小的电子邮件。我认为 postfix 和 php.ini 配置没问题。

答案1

尝试改变php.ini => upload_max_filesize = as you want

答案2

  1. 您可能有多个php.ini文件,并且可能更改了错误的文件。使用 检查更改是否生效phpinfo()

  2. 更改限制之前您能上传文件吗?可能是您file_uploads = On没有php.ini

  3. 您是否能够将文件上传到同一台服务器的其他地方?如果可以,则说明 postfix 或 roundcube 存在问题。

  4. 当您尝试上传文件时会发生什么?您是否可以上传但无法发送?如果是,则问题出在 Postfix,而不是 PHP 或 Roundcube。

  5. 更改配置文件后,您是否重新启动(或重新加载)了 php 和 postfix 服务?

注意:您的 Postfix 配置限制了邮件的大小,而不是附件的大小。即使您能做到这一点,您也无法将两个 5M 文件上传到一封邮件中。如果电子邮件中包含大量文本,您也可能会遇到问题。不过,282K 应该足以容纳比您可能想要在电子邮件中写入的更多的文本。

答案3

这些message_size选项指的是整个电子邮件消息,包括标题和正文。如果附件本身的大小达到限制,则邮件将被拒绝,因为添加的标题会使邮件超出限制。

另外,请注意,有些事情可能会在不明显的情况下增加邮件大小:

  • 二进制附件在经过 base64 编码后发送,其大小会增加约 30%
  • 特殊字符,如果使用“Quoted-printable”编码,将占用多个字符(至少 3 个)
  • 包含 HTML 部分的邮件通常包含两次消息(作为 HTML 和纯文本),从而进一步增加了其大小。

答案4

对于那些最近从谷歌来到这里但仍然无法解决的人来说,限制在哪里降低。这不是 php.ini 的问题。这不是错误,而是 Roundcube 的功能,当最大附件大小通过公式计算时:

min(
  ini_get('post_max_size'), 
  ini_get('upload_max_filesize'), 
  $config['max_message_size'] / 1.33
)

它在文件中:程序/动作/邮件/compose.php

public static function compose_attachment_form($attrib)
{
    $rcmail = rcmail::get_instance();

    // Limit attachment size according to message size limit
    $limit = parse_bytes($rcmail->config->get('max_message_size')) / 1.33;

    return self::upload_form($attrib, 'uploadform', 'send-attachment', ['multiple' => true], $limit);
}

希望它可以帮助其他人,而不必像我一样浪费那么多时间去搜索......

相关内容