Nmail PHP
제품소개
데모
다운로드
구입안내
FAQ (21)
Q&A (6091)
사용후기 (23)
Home    Contact us    Sitemap
기술지원안내
FAQ
Q&A 게시판
사용자 팁


Home > Support > FAQ > Nmail PHP
Nmail PHP FAQ


제 목 3 - PHP의 mail() 함수를 통해 메일발송이 안될때의 해결방법
글쓴이 관리자

먼저 웹메일 관리자모드에서 PHP mail()함수 테스트를 해봅니다.

 

1. 웹메일에 postmaster 계정(서버관리자 권한)으로 로그인 합니다.

2. [메일서버관리 - 메일 발송 테스트]페이지에 들어가서 '성공/실패'여부를 확인하고, 실패일 경우 하단에 안내된 내용대로 점검해보면 됩니다.

 

 

위 과정에서 '성공'했는데도 불구하고 메일이 발송되지 않는다면,

웹메일에서 보낸메일은 잘 가는데 PHP mail() 함수를 통해 발송시 문제가 된다면 다음처럼 발송프로그램이나 발송옵션에 따른 문제일 확률이 높습니다.

 

발송후 아래처럼 발송로그를 확인해보시면 '보낸사람주소'가 엉뚱하게 붙어나갈 것 입니다.

             Nmail PHP) tail -n30 /var/MailRoot/logs/smail-200609060000

             sendmail) tail -n30 /var/log/maillog

 

예를 들어 'root@localhost.localdomain' 처럼 붙어나간다면 대형포털이나 스팸차단솔루션을 사용중인 메일서버에서 발송서버의 IP와 도메인(localhost.localdomain)이 일치하지 않아 차단될 가능성이 높습니다. 이 문제가 아니더라도 '보낸사람주소(회신주소)'가 제대로 지정되지 않을 경우 문제가 발생하는 원인에 대한 정확한 에러메세지를 메일로 받아볼 수 없는 문제가 있습니다.

 

따라서 아래 2가지 중 한가지 방법을 선택해서 해결하시면 됩니다.

 

1. 보낸주소가 지정되지 않았을 때 기본 도메인을 지정하는 방법(권장)

             : ‘보낸사람주소(회신주소)’가  root@domain.com apache@domain.com 처럼 올바른 도메인으로 사용됩니다.

             Nmail PHP 사용시)

                           vi /var/MailRoot/bin/sendmail.sh

                                                     2 line) 아래 내용 추가

                                                                  export DEFAULT_DOMAIN=domain.com

             sendmail 사용시)

                           서버의 hostname 을 올바른 도메인으로 변경하면 됩니다.     

 

2. ‘보낸사람주소(회신주소)’를 PHP소스나 php.ini 에서 강제 지정하는 방법

 

             예제 소스)

                           $header = "Return-Path: <$mail_from>\n";

                           $header .= "From: $fname <$mail_from>\n";

                           mail($to, $subject, $body, $header);

 

             A) 메일발송 소스를 수정하는 방법.

                           $header = "Return-Path: <$mail_from>\n";

                           $header .= "From: $fname <$mail_from>\n";

                           mail($to, $subject, $body, $header);

                           =>

                           mail($to, $subject, $body, $header, '-f'.$mail_from);

 

             B) php.ini 를 수정하는 방법.(Linux)

                           ; PHP mail() 함수에서 발송하는 메일에는 모두 적용됨. 수정후 아파치 재시작해야함.

                           ;sendmail_path =

                           =>

                           sendmail_path = "/usr/sbin/sendmail -t -i -fpostmaster@domain.com"

 

             C) php.ini 를 수정하는 방법.(Windows)

                           ; 모든 메일발송자가 고정적으로 지정됨. 수정후 아파치 재시작해야함.

                           ;sendmail_from = me@example.com

                           =>

                           sendmail_from = postmaster@domain.com


     

리스트
번호   제목 글쓴이 등록일 조회수
21  
관리자
13-09-30 19083
20  
관리자
13-06-18 21360
19  
관리자
12-10-29 19148
18  
관리자
11-10-10 55017
17  
관리자
10-01-22 50499
16  
관리자
09-12-31 18616
15  
관리자
09-07-16 20213
14  
관리자
09-05-25 40697
13  
관리자
09-03-02 15375
12  
관리자
08-04-01 18985
11  
관리자
08-02-21 19060
10  
관리자
07-11-01 26051
9  
관리자
07-10-25 28811
8  
관리자
07-07-23 23212
7  
관리자
07-06-16 52221
6  
관리자
07-06-01 21526
5  
관리자
07-06-01 18982
4  
관리자
07-04-02 35358
3  
관리자
07-02-28 68526
2  
관리자
07-01-22 23591
◀◀ ◁ | 1 | 2 | 3 | ▷ ▶▶
패스코리아넷   경남 창원시 마산회원구 내서읍 중리상곡로 129, 한성빌딩 701호
메일 문의 : nmail@passkorea.net   I   전화 : 1544-1608   I   팩스 : 055-231-2069
사업자 등록번호 : 608-25-32288   I   대표자 : 빈경윤