IT/PHP

열뻗치는 PHP mail() 이용해서 메일보내기 mail header 부분

월공 2020. 5. 14. 17:35
728x90
300x250

PHP 에서 메일보내주는 mail 함수는 다들 아실텐데.. 난 이놈 때문에 오늘 하루 다날렸다

Naver, Nate, Gmail , 사내메일까지 다 포함 싸그리 잘만 들어가는데 유독 Daum (Hanmail) 에만 메일이 안들어가기도했고, 스팸으로 무조건 빠지는 문제도 있었다

Linux 푸티로 접속하여 아래 명령어로 로그 확인을 해보자

cat /var/log/maillog

아래 처럼 나온다

자세한건 모르겠는데 여튼 아래와 비스무리하게 나와야 정상적으로 메일이 발송되는거고

stat=Sent (04E7oJCu024020 Message accepted for delivery)

 

아래 처럼 나오면 발송실패한거다

stat=Service unavailable

구글링 암만해봐도 나한테 도움된건 없었다..

여튼 한메일만 제외하고 나머지 타 도메인들은 메일 잘만들어오는 상태였고 .. 진짜 미칠노릇이었는데

딱히 메일환경설정에서 바꾼건 없었고
Header 쪽을 좀 찾고 찾으면서 아래처럼 다듬어주니까 한메일에도 메일이 왔다

 

<?		
	//메일 수신주소
	$toEmail 	= "example@hanmail.net";	

	//제목
	$subject="메일 테스트 세번째";
    
    //내용
	$content="내용이 들어갑니다";

	//한글 안깨지게 만들어줌
	$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
	
	$headers .= 'From: 보낸사람@보낸도메인.com '. "\r\n";  
	$headers .= 'Reply-To: 보낸사람@보낸도메인.com ' . "\r\n"; 
     // Return Path는 PHP 5.2 에서까지만 쓰였다는것 같다 의미없음
	 //$headers .= 'Return-Path: 보낸사람@보낸도메인.com ' . "\r\n";
	//참조
    //$headers .= 'CC: 보낸사람@보낸도메인.com ' ."\r\n";
    //숨은참조
	//$headers .= 'BCC: 보낸사람@보낸도메인.com ' . "\r\n";
	$headers .= 'Organization: Sender Organization ' . "\r\n";
	$headers .= 'MIME-Version: 1.0 ' . "\r\n";
	$headers .= 'Content-type: text/html; charset=utf-8 ' . "\r\n";
	$headers .= 'X-Priority: 3 ' ."\r\n" ;
	$headers .= 'X-Mailer: PHP". phpversion() ' ."\r\n" ;
	
	$mailResult = mail($toEmail, $subject, $content, $headers);

	if($mailResult) {
	    echo "발송완료";
	}else{
		echo "발송X";
	}
?>

정렬무엇 .. 수정창에서는 일직선인데 ..

 

보낸메일주소 앞에 이름써주면 보낸사람이름도 잘 들어오는것도 확인이 되었다..

참 알고나니 별거 아니었는데 허허 ..

 

*특이사항

타 도메인보다 한메일이 메일 오는게 매우 느리다 적게는 2,3분 많게는 5분이나 늦게 온다

 

왜 타 사이트 가입신청할때 웬만하면 한메일로는 하지말라고 문구가 써있었는지 이거 하면서 왠지 알거같다 ㅎㅎ;

728x90
300x250