찾다

 >  Q&A  >  본문

손상된 헤더를 보내는 PHP 메일

PHP 스크립트에서 이메일을 보내는 중입니다. mail() 기능이 트리거되면 수신자의 사서함이 특정 서비스(seznam.cz)에 의해 호스팅되고 메시지가 메일 클라이언트(Mozilla Thunderbird)에 다운로드되어 ESET Antivirus에서 확인되면 메시지가 손상된 것으로 나타납니다.

이 문제는 바이러스 백신 소프트웨어가 메일 메시지에 특수 헤더를 삽입하고 그 뒤에 빈 줄을 남겨두기 때문에 발생한다고 생각합니다.

으아악

내 이메일 클라이언트는 메시지가 일반 텍스트라고 생각하고 X-PHP-Originating-Script라는 줄로 시작합니다. 메시지의 나머지 부분에는 모든 HTML 마크업이 포함됩니다.

이메일을 보내는 데 사용하는 스크립트는 다음과 같습니다.

으아악

그러나 Laravel 프레임워크를 사용하면 이메일이 올바르게 전송되고 표시됩니다. 차이점을 비교한 결과 X-PHP-Originating-Script 헤더가 Laravel에서 전송되지 않는다는 것을 깨달았습니다.

이것이 이유일까요? 어떻게 해결할 수 있나요?

P粉979586159P粉979586159462일 전647

모든 응답(1)나는 대답할 것이다

  • P粉573943755

    P粉5739437552023-09-08 00:38:50

    단순히 다른 줄 구분 기호의 문제일 수도 있습니다.

    PHP 7.4까지 X-PHP-Originating-Script 뒤의 구분 기호는 단지 n이었습니다(이것은 PHP 8n (这已更改 在 PHP 8 中使用 rn에서 를 사용하고 더욱 최근에는 master

    에서 다른 요소를 기반으로 결정을 내립니다.

    rn다른 모든 헤더는

    을 사용하여 연결되므로 바이러스 백신 소프트웨어로 인해 헤더를 추가할 때 약간의 혼란이 발생할 수 있습니다. 이로 인해 클라이언트가 본문의 시작으로 해석하는 이중 줄 바꿈이 발생합니다.

    nr모든 문자(

    포함)를 표시하는 편집기로 원본 메시지를 보면 더 잘 이해할 수 있습니다.

    mail.add_x_header = OffX-PHP-Originating-Script해결책은 PHP 버전의 줄 끝을 일치시키거나 php.ini에서 모든

    헤더를 설정하는 것입니다. 🎜

    회신하다
    0
  • 취소회신하다