> 백엔드 개발 > PHP 튜토리얼 > 내 PHP 메일() 함수의 \'From\' 헤더가 무시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

내 PHP 메일() 함수의 \'From\' 헤더가 무시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

DDD
풀어 주다: 2024-12-01 10:54:09
원래의
586명이 탐색했습니다.

Why is my PHP mail() function's

PHP 메일의 "From" 헤더 문제

사용자 기능을 향상시키기 위해 사용자에게 자동으로 이메일을 보내는 웹사이트가 개발되었습니다. 등록. 이 작업에 사용된 PHP 코드는 다음과 같습니다.

<?php
$to = "[email&#160;protected]";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";

$headers = "From: [email&#160;protected]";
$headers .= "\r\nReply-To: [email&#160;protected]";
$headers .= "\r\nX-Mailer: PHP/".phpversion();

mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?>
로그인 후 복사

이 코드를 통해 이메일을 보낼 때 예상치 못한 문제가 발생했습니다. 전달된 이메일에 표시된 '보낸 사람' 헤더는 '[email protected]'로 유지되었으며, 'Reply-To' 헤더에는 지정된 '[email protected]' 값이 올바르게 반영되었습니다. 사용된 메일 서버는 box123.bluehost.com이었습니다.

문제 원인

추가 조사 결과 Gmail 주소를 " From" 값이 문제의 근본 원인이었습니다. Bluehost를 포함한 인터넷 서비스 제공업체(ISP)는 일반적으로 이메일 스푸핑을 방지하기 위해 외부 이메일 주소를 "보낸 사람" 값으로 사용하는 것을 제한합니다. 결과적으로 ISP는 "보낸 사람" 주소를 기본값으로 덮어썼습니다.

해결 방법

이 문제를 해결하고 응답을 의도한 주소로 리디렉션하려면 다음을 수행하십시오. 대신 '답장' 헤더를 사용하는 것이 좋습니다. 또한 아래와 같이 다섯 번째 매개변수를 mail() 함수에 추가할 수 있습니다.

mail($to,$subject,$message,$headers,"-f [email&#160;protected]");
로그인 후 복사

이 매개변수는 "-f" 옵션을 지정하며, 이를 통해 많은 ISP에 대해 "From" 헤더를 수동으로 설정할 수 있습니다. .

위 내용은 내 PHP 메일() 함수의 \'From\' 헤더가 무시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿