개발 Q&A

제목 sendmail 웹에서 메일이 가지 않아요
카테고리 서버
글쓴이 뫄뫄잉뿌 작성시각 2017/09/22 13:46:49
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 9994   RSS

아마 서버 설정상의 문제인 것 같은데..

홈페이지상에서 관리자로 등록된 email을 가져와서 from에 위치시키고,

to는 게시판에 작성된 게시글 주인의 메일을 읽어와 메일을 보내는 작업입니다.

 

sendmail 25 포트 동작중인것 확인했고,

방화벽에서 INPUT도 열어주었고,

telnet localhost 25 로 메일 테스트해서 리눅스 상에서 메일 보내지는 것 까지 확인했는데...

해당 서버에 위치되어있는 웹상에서 메일이 가지 않습니다 ㅠㅠ

서버 이전 전의 소스코드랑 이전 후 소스코드는 동일해서 

sendmail 설치할때 설정이 무언가 다른가 해서 sendmail.mc 랑 sendmail.cf도 구분하면서 맞춰주고 restart까지 시켰는데도

메일이 발송되지 않습니다..ㅠㅠ 서버이전하면서 centos랑 php, 이런 것들을 버전 업시키면서 생기는 현상일까요..?

로그도 확인해보려 /var/log/maillog 를 확인해봤는데 telnet상에서 보낸 건 로그에 찍히는데,

웹상에서 보내는 건 로그도 기록이 안되더라구요...

어떻게해야 정상적으로 보내질까요..ㅜㅜ

 다음글 인쇄창이 출력 이후 javascript 기능들이 작동하... (1)
 이전글 디비에서 읽어온 디비를 가공할때 컨트롤러에서 하는것이 ... (2)

댓글

변종원(웅파) / 2017/09/22 13:59:15 / 추천 0
웹상에서 보냈다고 하더라도 실제는 서버에서 어떤 프로그램을 호출했겠죠. 거기서 로그 찍어보세요.
뫄뫄잉뿌 / 2017/09/22 14:25:53 / 추천 0

@변종원(웅파)님

답변 감사합니다! 

mail()함수를 호출하고 있는데 maillog 확인해보니까 아예 찍히지도 않는데 호출도 안되는 건가요?

변종원(웅파) / 2017/09/22 14:58:08 / 추천 0
mail()함수 리턴값 찍어보세요.
뫄뫄잉뿌 / 2017/09/22 15:06:33 / 추천 0

@변종원(웅파)님

답변 감사합니다. 하나하나 주석처리해서 어디가 원인인지 알아본 결과

mail()함수의 네번째 파라미터 header를 설정해주는데, Content-Transfer-Encoding: BASE64\n 를 해준 다음

 $header .= chunk_split(base64_encode($content)) . "\n";

이부분에서 잘못된 것 같습니다.

리턴값은 아무것도 안나옵니다. 저 부분 주석하고 실행하면 리턴값 1 나옵니다 ㅜㅜ

뫄뫄잉뿌 / 2017/09/22 16:06:31 / 추천 0
해결하였습니다!!