Windows APM에서 PHP의 mail() 함수를 사용하기 위해서는 구글 지메일등 외부 메일서버를 이용하거나  hMailServer, Nmail등의 메일서버를 설치 후에 fake sendmail (이하 sendmail)을 사용하면 됩니다. Windows용 sendmail은 Linux의 sendmail과는 달리 단지 외부의 메일서버 또는 자체 메일서버를 연결시켜주는 기능을 합니다.

이 포스트에서는 hMailServer 또는 Nmail등 메일서버를 설치한 후에 sendmail을 이용하여 mail() 함수 사용을 위한 PHP 설정을 알아보도록 하겠습니다. 구글 지메일 서버를 이용하는 방법 또는 메일서버의 설치는 다루지 않습니다. hMailServer의 설치 및 설정은 이 포스트를 참고하시기 바랍니다. 본문은 현재 최신버전인 sendmail version 28 을 기준으로 작성하였습니다.

먼저 최신버전의 sendmail은 여기에서 다운로드 받을 수 있습니다. 다운로드 후에는 적당한 위치에 압축을 해제 합니다.

포스트에서는 c:/sendmail 에 압축해제하였다고 가정하겠습니다.

디렉토리 내에 있는 sendmail.ini 파일을 텍스트 에디터로 열어 아래의 사항을 수정합니다.

1. smtp_server=mail.mydomain.com 설치된 메일서버를 이용하므로 localhost를 입력합니다.

2. smtp_port=25 메일서버에서 설정한 smtp 포트 번호를 입력합니다. 변경하지 않았다면 25를 그대로 사용합니다.

3. default_domain=mydomain.com 본인의 도메인명을 입력합니다.

4. auth_username= 인증이 필요하도록 메일서버를 설정했다면 name@mydomain.com의 형식으로 메일 주소를 입력합니다. 인증을 사용하지 않으면 그대로 공란으로 비워놓습니다.

auth_password= 위에서 지정한 메일 주소의 패스워드를 입력합니다. 인증을 사용하지 않으면 그대로 공란으로 비워놓습니다.

다음으로 PHP의 설정을 수정합니다. php.ini 파일을 열어 아래의 사항을 수정합니다.

[mail function]
; For Win32 only.
SMTP = localhost 주석(;)을 해제하고 localhost를 입력합니다.
smtp_port = 25 메일서버에서 설정한 smtp 포트 번호를 입력합니다. 변경하지 않았다면 25를 그대로 사용합니다.

; For Win32 only.
sendmail_from = name@mydomain.com mail() 함수 사용시 사용할 메일 주소를 입력합니다.

; For Unix only.  You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path =c:/sendmail/sendmail.exe -t” sendmail이 위치한 절대경로에 -t 옵션을 붙여 입력합니다.

마지막으로 Apache를 재시작하여 설정을 적용합니다.