GoogleImageProxy 문제를 알아 낸 것 같습니다.
이것은 CACHING 개념과 관련된 것입니다. 최근에 서버에 PHP 코드를 배포했지만 이미지 업로드를 잊었다 고 가정합니다. 이메일 로직으로 한 번 테스트했습니다. 시스템에서 HTML 이메일을 생성했습니다. 이 이메일이 Gmail 서버에 도달하면 GoogleImageProxy는 사이트에서 자체 프록시 서버로 이미지를 가져와 저장하려고 시도합니다. 이미지를 가져 오는 동안 GoogleImageProxy는 누락 된 이미지에 대해 404 상태를 발견하고 일부 보호 된 이미지에 대해 403을 발견했습니다. GoogleImagesProxy는 이러한 상태를 자체 프록시 서버에 저장했습니다.
이제 이메일을 열려고 시도했을 때 이미지에 대해 404 상태가 있음을 발견했습니다. 이것은 이해할 수있는 것입니다. 일부 이미지를 업로드하는 것을 잊었으므로 즉시 서버에 업로드했습니다. 또한 보호 된 이미지에 대한 일부 권한을 수정했습니다.
이제 모두 끝났습니다. 이제 php-email 스크립트를 다시 한 번 실행 해보십시오. 결과적으로 Gmail 또는 Hotmail받은 편지함에서 다른 이메일을 받게됩니다. 이미지의 모든 문제를 해결했습니다. 이제 이미지가 이메일 콘텐츠에 표시되어야합니다. 하지만 여전히 이미지를 볼 수 없습니다.
아, 아마도 당신은 브라우저의 캐시를 지우는 것을 잊었을 것입니다. 브라우저의 캐시를 지우고 Gmail 또는 Hotmail 페이지를 다시로드하십시오. 그러나 결과는 여전히 동일합니다. 수십 개의 수정 / 패치를 적용하고 php-email 스크립트를 수천 번 실행 해보십시오. 그러나 결과는 여전히 동일합니다. 개선이 없습니다.
진짜 문제
도대체 무슨 일이야? 설명해 드리겠습니다. 액세스 로그로 이동하여 GoogleImageProxy에서 요청을 찾으십시오. 이메일에 사용 된 다른 이미지의 수에 따라 GoogleImageProxy에서 2 ~ 3 개의 요청 만 있다는 사실에 놀랄 것입니다. GoogleImageProxy는 이미지를 가져 오지 못했습니다. 누락 된 이미지를 업로드하고 보호 된 이미지에 대한 권한을 설정하여 이미지 문제를 해결 한 후에도. 왜? 브라우저의 캐시를 삭제해도 아무런 영향이 없습니다. 이미지는 이제 마지막 상태 코드와 함께 GoogleImageProxy에 캐시되고 자신의 브라우저에 캐시되지 않기 때문에 GoogleImageProxy는 새로운 이메일에 대해서도 새로운 이미지를 가져 오지 않습니다.
GoogleImageProxy는 이미지에 대한 자체 만료 날짜를 설정했습니다. 한 달은 생각합니다. 이제 만료일 이후에 이미지의 새 사본을 가져옵니다. 한 달 후를 의미합니다. GoogleImageProxy가 이미지를 가져 오도록 강제 할 수 없습니다. 그러나 이메일에 이미지를 표시하는 것이 중요합니다. 해결책은 무엇일까요?
해결책
다음은 GoogleImageProxy가 이미지를 가져 오도록하는 유일한 방법입니다.
- png, jpg 또는 gif 확장자 만 사용하여 이미지 이름을 다른 이름으로 바꿉니다.
- 다음과 같은 이미지 URL에 어떤 종류의 쿼리 문자열도 사용하지 마십시오.
?t=34343
- 이미지에는 확장자로 png, jpg 또는 gif가 포함되어야합니다.
- 이미지 URL은 이미지에 직접 매핑되어야합니다.
- 보호 된 이미지에 프록시 URL을 사용해야하는 경우 응답에 다음과 같은 적절한 헤더가 포함되어야합니다.
Content-Type: image/jpeg
- 파일 확장자와 콘텐츠 유형 헤더가 일치해야합니다.
- 상태 코드는 403, 500 등이 아닌 200이어야합니다.
중요 사항
php-email 스크립트를 실행할 때마다 전체 프로세스를 반복하십시오. GoogleImageProxy가 이미지를 캐시 할 때마다 매번 새로운 시도에 대해 동일한 프로세스를 반복해야하기 때문입니다.
이것이 대부분의 사람들에게 문제가 해결되기를 바랍니다.