윈도우 APM 환경에서 sendmail 실행하기
페이지 정보
작성자 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 14,478회 작성일 09-05-19 19:16본문
윈도우 APM 환경에서 sendmail 실행하기
Posted 2008/04/29 00:57, Filed under: e 세상 이야기 친구의 부탁으로 홈페이지를 제작하게 되면서
윈도우 환경에 APM 을 선택해야하는 상황이 되었습니다. (관리자가 리눅스에 전혀문외한이라 관리가 안되기때문에 어쩔수 없는 선택으로...)
윈도우 환경의 APM에서 제로보드 XE의 설치와 실행 모두 문제가 없었으며, 다른 사항에서도 특별한 문제는 없었습니다.
하지만 마지막에 발생한 문제가 하나 있었는데
리눅스에서의 sendmail 이 윈도우에서는 불가능 하다는겁니다.
이는 PHP에서 mail() 함수가 작동하지 않는 다는걸 의미합니다.
검색결과 윈도우에서는 EMWAC 라는 공짜 메일서버를 설치하거나
유료 솔루션을 구입해야 한다는 답변들이 많았습니다.
EMWAC의 경우에는 설치를 완료하고 설정을 이리 저리 만져 보았으나
서비스의 실행만 성공적으로 이루어지고 마지막 단계의 telnet localhost 25 를 아무리 해도
접속이 되지 않는 문제로 인해 다른 대안을 생각하게 되었습니다.
제가 찾아낸 훌륭한 대안은 "fake sendmail for windows" 였습니다.
리눅스의 sendmail 을 윈도우에서 흉내낸것입니다.(하지만 외부 smtp 서버 주소가 필요합니다.)
예전에는 SSL/TLS 보안에 대해 지원을 하지 않았지만 최근에는 지원을 하기 때문에
gmail 의 SMTP 를 사용할수 있다는 장점이 있습니다.
gmail의 SMTP 의 경우에는 TLS 보안인증을 사용하기 때문에
사이트에서 sendmail-SSL 파일을 추가로 받아서 압축을 풀어준후에
sendmail.exe 와 같은 폴더에 복사해주면 됩니다.
제가 세팅한 정보를 아래와 같습니다.
윈도우 환경에 APM 을 선택해야하는 상황이 되었습니다. (관리자가 리눅스에 전혀문외한이라 관리가 안되기때문에 어쩔수 없는 선택으로...)
윈도우 환경의 APM에서 제로보드 XE의 설치와 실행 모두 문제가 없었으며, 다른 사항에서도 특별한 문제는 없었습니다.
하지만 마지막에 발생한 문제가 하나 있었는데
리눅스에서의 sendmail 이 윈도우에서는 불가능 하다는겁니다.
이는 PHP에서 mail() 함수가 작동하지 않는 다는걸 의미합니다.
검색결과 윈도우에서는 EMWAC 라는 공짜 메일서버를 설치하거나
유료 솔루션을 구입해야 한다는 답변들이 많았습니다.
EMWAC의 경우에는 설치를 완료하고 설정을 이리 저리 만져 보았으나
서비스의 실행만 성공적으로 이루어지고 마지막 단계의 telnet localhost 25 를 아무리 해도
접속이 되지 않는 문제로 인해 다른 대안을 생각하게 되었습니다.
제가 찾아낸 훌륭한 대안은 "fake sendmail for windows" 였습니다.
리눅스의 sendmail 을 윈도우에서 흉내낸것입니다.(하지만 외부 smtp 서버 주소가 필요합니다.)
예전에는 SSL/TLS 보안에 대해 지원을 하지 않았지만 최근에는 지원을 하기 때문에
gmail 의 SMTP 를 사용할수 있다는 장점이 있습니다.
gmail의 SMTP 의 경우에는 TLS 보안인증을 사용하기 때문에
사이트에서 sendmail-SSL 파일을 추가로 받아서 압축을 풀어준후에
sendmail.exe 와 같은 폴더에 복사해주면 됩니다.
제가 세팅한 정보를 아래와 같습니다.
c:\windows\php.ini 파일을 열어서 아래와 같은 부분을 수정합니다.
sendmail_path = d:\sendmail -t
여기서 원래는 sendmail -t 이지만 위 사이트에서 받은 sendmail.exe 파일의 경로를 입력합니다.
마지막에 .exe 는 제거합니다.
sendmail.exe 와 같은 폴더에 위치한 sendmail.ini 를 열어 아래와 같이 수정합니다
아래는 gmail 의 세팅입니다 ^^ 참고하세요
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=아이디@gmail.com
auth_password=비밀번호
force_sender=아이디@gmail.com
여기서 이상한점이 force_sender 를 지정하지 않으면 sender email 을 지정하지 않았다고 계속 오류를 뱉어낸다는겁니다. php 에서 mail함수에서 sender email 을 주어도 본문으로 들어가버리더라구요. 제가 php 를 많이 다뤄보지 않아서 정확한 이유는 모르겠습니다.
또하나 smtp_port 번호가 gmail 에서 말하기로는 465 또는 587이라고 하는데
465를 사용할경우에는 응답없음으로 나오면서 소켓 에러가 발생합니다.
위와같이 세팅을 하고 php의 mail 함수를 이용해보면 아주 잘 작동합니다 ^^
gmail 포트번호 465가 에러날것이라고는 생각도 못하고 계속 시도해도 안되길래 좌절 모드였는데
(심지어 sendmail.exe 가 오류 투성이의 프로그램이 아닌가 하는 의심까지 햇습니다 ㅠ.ㅜ)
잠시 소설 "뉴욕의 프로그래머"를 보면서 머리를 식히다가
소설에서 "톰"이 프로그램 디버깅에 임하는 방법을 보면서 머리속에서 무엇가가 스쳐지나가더라구요 ^^
"영우"가 시도했던 방법도 비슷했는데 경험의 차이였을까요?
직접 컴퓨터프로그램이 되보고 비트하나하나가 되서 생각하는 방식 유용한듯 싶어요
p.s 윈도우 환경에서 제로보드 XE나 php 의 mail 함수를 이용해야 하는 분들에게 유용하면 좋겠습니다.
디버깅하다가 안되면 예전에 만든 gmail 전송하는 Python 스크립트로 바꿔버릴려고 생각중이었답니다. 하핫;;
다음 포스팅은 제로보드 XE에서 필요없는 언어종류를 줄여버리는 방법이 되겠습니다.(무식하게;)
gmail 포트번호 465가 에러날것이라고는 생각도 못하고 계속 시도해도 안되길래 좌절 모드였는데
(심지어 sendmail.exe 가 오류 투성이의 프로그램이 아닌가 하는 의심까지 햇습니다 ㅠ.ㅜ)
잠시 소설 "뉴욕의 프로그래머"를 보면서 머리를 식히다가
소설에서 "톰"이 프로그램 디버깅에 임하는 방법을 보면서 머리속에서 무엇가가 스쳐지나가더라구요 ^^
"영우"가 시도했던 방법도 비슷했는데 경험의 차이였을까요?
직접 컴퓨터프로그램이 되보고 비트하나하나가 되서 생각하는 방식 유용한듯 싶어요
p.s 윈도우 환경에서 제로보드 XE나 php 의 mail 함수를 이용해야 하는 분들에게 유용하면 좋겠습니다.
디버깅하다가 안되면 예전에 만든 gmail 전송하는 Python 스크립트로 바꿔버릴려고 생각중이었답니다. 하핫;;
다음 포스팅은 제로보드 XE에서 필요없는 언어종류를 줄여버리는 방법이 되겠습니다.(무식하게;)
관련링크
- http://seapy.com/112 4243회 연결
댓글목록
등록된 댓글이 없습니다.