На почту не приходят файлы более ~10мб из Contact Form 7. Поможете?

Ссылка скопирована
1 ответ

Перечитал все похожие проблемы на мою, но ответа не нашел, да по сути и проблемы такой же как у меня не нашел.
Сделано: составлена форма в плагине Contact Form 7 + MultiLine files for Contact Form 7 для отправки сообщений с файлами.
Лимит в форме указан 250мб ( [multilinefile* multilinefile-1001 limit:25000000 filetypes:jpg|jpeg|png|pdf|mp4|MPEG-TS|M4V|MOV|avi "загрузить"] ) тег multilinefile-1001 установлен в поле "Прикреплённые файлы" шаблона письма.
На сервере стоят значения: max_execution_time 300, max_input_time 180, max_input_vars 1000, memory_limit 2048м, post_max_size 250м, upload_max_filesize 250м.
Как работает: письмо с прикрепленным файлом до 10мб или несколько файлом каждый весом не более 10мб, но общим объемом более 10мб приходит на почту с этими файлами благополучно. Но если прикрепить файл весом более 10мб, то письмо приходит без вложенного файла.
Понимаю, что где то стоит скрытое ограничение на объем одного файла. Но где еще оно может быть?
Выше писал, что в настройках плагина и на сервере стоит лимит на загрузку файлов не меньше 250мб.

Дополнительно:

Не думаю что так, .т.к. на этот же ящик я могу отправить письмо с другого ящика и свободно приложить файл на 20-30мб и оно приходит.

  • в пределах одной сети?
  • На другом ящике свои лимиты стоят. Лимиты на почтовом сервере могут быть не только на получение, но и на отправку больших писем.
  • Rsa97, но как?
    Я писал, что несколько файлов общим объемом 20-30мб приходят (архивом), а вот один файл к примеру 16мб, не приходит.
  • Deita, Не знаю ) Как это проверить? Сервер - самый крупный местный хостинг. На нем же ящик почтовый, на нем же сайт на котором работает форма.
  • Кирилл, Смотреть в логи серверов, что происходит, какие ошибки
  • Ответы:

    Ограничение на стороне почтового сервера

    • Сделал ящик почтовый на том же сервере, что и сам сайт находиться. Отправляю туда. Такой же результат.

    Я бы попробовал простенький тест.

    1) Попробуйте в настройках отправки почты вашего плагина прописать настройки smtp сервера какого-нибудь бесплатного почтовика. Например, Яндекса.
    Если дойдет с вложением - дело в почтовом сервере, без вложения - в плагине.

    2) Альтернативный вариант. Создайте php файл, из которого отправьте письмо с вложением через ваш почтовый сервер.
    Через какой-нибудь PHPMailer или чистый PHP, неважно.
    Если дойдет с вложением - дело в плагине, без вложения - в почтовом сервере.

    Первым дело смотри в настройках php лимиты.
    И логи сервера.

    • Я в описании проблемы писал какие стоят лимиты. Все в допусках.
    • Кирилл, посмотри-покажи скрин лимитов в здоровье сайта.
    • Refguser,

      На почту не приходят файлы более ~10мб из Contact Form 7. Поможете?

    • Кирилл, ок. тогда вторая часть моего ответа - смотри логи.
      Можешь поставить плагин логгирования почты и посмотреть что он покажет. Если ошибок не будет проблема на приёмной стороне.

      А PHP time limit не стоит ставить в 0. Поставь 120сек например.

    • Refguser, в cpanel не нашел настройки PHP time limit
    • max_execution_time стоит 300, но в сводке сайта не отображается
    • Кирилл, не там смотришь. Где оно в Спанели - не подскажу.
      Но этот параметр не должен влиять на почту. Это ограничение времени выполнения php-скрипта. Если он слишком долго работает, то его нужно остановить иначе всё умрёт, тк php однопоточный. А у тебя там бесконечность.
    • Refguser, Проверил файлы PHP.ini, .htaccess в них стоит значение max_execution_time = 300
      Не понимаю почему сайт показывает ноль

    На почту не приходят файлы более ~10мб из Contact Form 7. Поможете?

    Отправлять через почту что-то тяжелее N мегабайт - очень плохая идея.
    Ограничения могут быть где угодно, как на отправляющем сервере, так и на принимающем.

    Всем спасибо.
    Проблема не решилась.
    Ушел от нее путем сохранения файла на сервере, в письмо приходит только ссылка на файл.

    • Правильно. Почта это не про файлообмен большими файлами. Максимум пдф-ки слать.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Анна SEO Ответ

    Файлы больше 10 МБ через Contact Form 7 могут не доходить по нескольким причинам одновременно. Лимит в самой форме — это только один слой. Есть ещё лимиты PHP, веб-сервера, почтового сервера, хостинга и ограничения вложений у получателя.

    Проверьте минимум эти параметры:

    upload_max_filesize = 256M
    post_max_size = 256M
    max_execution_time = 300
    max_input_time = 300
    memory_limit = 512M

    upload_max_filesize = 256M post_max_size = 256M max_execution_time = 300 max_input_time = 300 memory_limit = 512M

    Для Nginx дополнительно:

    client_max_body_size 256M;

    client_max_body_size 256M;

    Но даже если форма примет файл 250 МБ, отправлять его почтой — плохая идея. Почтовые серверы часто режут вложения на 10-25 МБ. Кроме того, вложение кодируется base64 и становится примерно на треть больше. Файл 20 МБ может превратиться в письмо около 27 МБ.

    Правильная архитектура для больших файлов:

    • форма загружает файл на сервер или в облачное хранилище;
    • в письме отправляется ссылка на файл;
    • файл хранится ограниченное время;
    • доступ к файлу защищён случайным токеном;
    • администратор скачивает файл по ссылке.

    Если нужно быстро проверить, где ограничение, сделайте тесты с файлами 5, 10, 20 и 50 МБ. Если форма отправляется, но письма нет — ограничение на почте. Если форма падает до отправки — PHP/Nginx/хостинг. Если в логах CF7 ошибка mail failed — смотрите SMTP и лимиты почтового сервера.

    Итог: не пытайтесь отправлять 250 МБ вложением. Для больших файлов используйте загрузку на сервер и отправку ссылки. А PHP/Nginx лимиты всё равно нужно поднять, чтобы форма могла принять файл.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно