안내)
[메일서버관리 - 메일 발송 테스트]가 성공하는데도 발송이 안될 경우에는 아래 FAQ을 참고하세요.
- PHP의 mail() 함수를 통해 메일발송이 안될때의 해결방법
http://www.passkorea.net/Board/ViewDoc.aspx?brdNo=11&docNo=28977
※ 서버 환경에 따라 해결방법이 다를 수 있으니 단계별로 하나씩 점검해보시기 바랍니다.
모든 과정은 서버에 SSH/Telnet 으로 접속하셔서 root 권한을 얻으신 후 점검하셔야 합니다.
1. 퍼미션 조정 스크립트를 실행한 후 [다시보내기]를 눌러보십시오.
cd /home/nmail2/tools
./perm_change.sh
2. 퍼미션 조정 스크립트를 아래처럼 수정해서 실행한 후 [다시보내기]를 눌러보십시오.
cd /home/nmail2/tools
vi perm_change.sh
# 맨 마지막 라인에 아래 명령 추가
chmod 755 /var/MailRoot/bin/sendmail
chmod -R 777 /var/MailRoot/spool/
./perm_change.sh
3. 다음 필요한 파일들이 존재하는지 실행시 에러가 나진 않는지 테스트해보시기 바랍니다.
[파일존재함]sendmail wrapper link : /usr/sbin/sendmail
[파일존재함]sendmail wrapper file : /var/MailRoot/bin/sendmail.sh
[파일존재함]sendmail wrapper file2 : /var/MailRoot/bin/sendmail
4. 모두 실패했다면 아래처럼 직접 퍼미션을 설정해서 결과를 확인해보시기 바랍니다.
chmod +sx /var/MailRoot/bin/sendmail
chmod +sx /var/MailRoot/bin/sendmail.sh
chmod +x /var/MailRoot/
chmod +x /var/MailRoot/bin/
ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 29 10월 23 13:33 /usr/sbin/sendmail -> /var/MailRoot/bin/sendmail.sh
ls -l /var/MailRoot/bin/sendmail
-rwsr-sr-x 1 nmail2 root 13092 10월 23 15:54 /var/MailRoot/bin/sendmail
ls -l /var/MailRoot/bin/sendmail.sh
-rwsr-sr-x 1 nmail2 root 207 8월 28 11:12 /var/MailRoot/bin/sendmail.sh
5. 만약 위 모든 과정이 실패했다면 기존에 설치된 sendmail 을 이용해 발송하도록 변경할 수 있습니다.
이 방법은 PHP mail()함수에서만 sendmail 을 사용하도록 sendmail wrapper 의 링크를 복원하는 방법입니다.
# sendmail wrapper 복원
# 주의) /usr/sbin/sendmail.backupByNmail 파일이 존재할때만 복원할 수 있습니다.
ls -l /usr/sbin/sendmail*
/usr/sbin/sendmail -> /var/MailRoot/bin/sendmail.sh
/usr/sbin/sendmail.backupByNmail -> /etc/alternatives/mta
rm /usr/sbin/sendmail
mv /usr/sbin/sendmail.backupByNmail /usr/sbin/sendmail
주의) sendmail 을 '시작'하시면 저희 메일엔진과 충돌이 발생하기 때문에 주의하셔야 합니다.
sendmail 을 시작하지 않더라도 /usr/sbin/sendmail 을 사용한 메일발송에는 지장이 없습니다.