CakePHP 4.2: ссылка для скачивания с Gmail не работает

Наше веб-приложение CakePHP 4 отправляет клиентам электронное письмо со ссылкой для прямой загрузки. Когда клиент нажимает на ссылку, начинается загрузка документа.

Это прекрасно работает, если пользователь получает почту в своем почтовом клиенте или щелкает ссылку для скачивания в веб-приложении, но если пользователь получает почту в Gmail (веб-клиент), файл не передается.

Есть ли препятствия или настройки?

Мы также используем:

$securityHeaders = new SecurityHeadersMiddleware();
$securityHeaders
        ->setCrossDomainPolicy()
        ->setReferrerPolicy()
        ->setXFrameOptions()
        ->setXssProtection()
        ->noOpen()
        ->noSniff();

person Salines    schedule 28.05.2021    source источник
comment
Какая часть не работает? Ссылка не работает в GMail? Зарегистрирован ли доступ к странице на вашем сервере? Есть ошибки?   -  person Greg Schmidt    schedule 28.05.2021
comment
@GregSchmidt, ссылка в порядке. Запрос на получение в порядке, но браузер не начинает загрузку файла, если реферер из gmail. . У нас есть та же ссылка для скачивания в веб-приложении, и скачать можно. Если мы нажмем ссылку в Outlook или других почтовых приложениях, загрузите загрузку.   -  person Salines    schedule 28.05.2021
comment
Используйте инструменты браузера, чтобы проверить заголовки запроса и ответ в случае, когда он работает, а где нет, и посмотрите, видите ли вы какую-либо важную разницу? Предполагая, что у вас нет какого-либо промежуточного программного обеспечения, брандмауэра или чего-то еще, что действует на основе реферера и портит его для вас.   -  person Greg Schmidt    schedule 29.05.2021
comment
Как указано в этом ответе, Gmail (как и многие другие почтовые провайдеры) использует реферер. Поэтому, когда вы нажимаете на https://example.com/file.ext, URL-адрес, который будет открыт, будет https://www.google.com/url?hl=en-GB&q=https://example.com/file.ext&source=gmail&[...].   -  person mjd    schedule 15.06.2021