워드프레스 3.6 자동메일 전송 문제 해법은?

워드프레스 3.6이 출시된지 3주 정도 지났다. 많은 부문 업그레이드 되었기 때문인지 워드프레스 커뮤니티에서도 관심이 뜨겁다.


하지만 커뮤니티를 살펴보면 자동메일전송 관련 문제가 심심찮게 발생하는 것을 확인할 수 있다.


워드프레스 버전을 업데이트했을 뿐인데...

워드프레스 3.6 버전으로 업데이트 후 불편을 느낄만한 버그가 발생했다. 댓글 받아보기, 암호전송, 폼메일 플러그인 등에서 메일이 전송 되지 않는다는 것이다.


그렇다면 어떻게 해야 할까.


우선 메일 전송을 담당하는 코드가 어떤 것인지 확인할 필요가 있다. 플러그인이나 테마의 문제가 아니라면 '~/wp-includes/' 디렉토리에 있는 파일 중 잘못된 부분을 찾아 수정하면 된다. 워드프레스의 각종 기능은 '~/wp-incldues/' 디렉토리에 저장된 파일을 통해 실행되기 때문이다.


해결책은?

우선 해결책 부터 보자. 문제가 되는 파일은 '~/wp-includes/class-phpmailer.php' 이다. 아래의 링크를 통해 해당 파일의 최근 버전으로 덮어쓰면 해결된다.


문제가 수정된 파일 :
https://raw.github.com/PHPMailer/PHPMailer/master/class.phpmailer.php

교체할 워드프레스 코어 파일 :
~/wp-includes/class.phpmailer.php
무엇이 문제였나?

워드프레스 3.6 버전은 phpmailer 5.2.4 버전을 사용한다. 해당 버전은 Qmail 을 사용해 메일을 전송할 때 문제가 있다. 이 문제는 5.2.5 버전에서 수정되었고 최신 버전은 5.2.6 이다.


[caption id="attachment_955" align="aligncenter" width="497"]

phpmailer Version 5.2.5 변경사항[/caption]
해결 과정이 궁금하다면..!

오픈소스 소프트웨어(OSS)는 대부분 내가 알아차릴때 쯤 문제가 해결돼 수정된 코드 배포가 이루어진다. 전 세계에 있는 수많은 사용자들이 버그를 알려주고 개발자들이 문제를 해결하기 때문이다.


필자는 워드프레스 코어파일에 문제가 발생하면 'wordpress core trac'과 'github'을 통해 해결한다. 그 이유는 워드프레스는 프로젝트 버전과 버그 추적이 체계적으로 관리되고 있고, 이미 수많은 오픈소스들을 포함하고있기 때문이다.


워드프레스 3.6 메일전송 문제 해결 과정은 다음과 같다.


1. wp-includes 디렉토리에서 메일과 관련된 이름이 적힌 파일을 찾는다.


~/wp-includes/class-phpmailer.php
~/wp-includes/class-pop3.php
~/wp-includes/class-smtp.php

2. http://core.trac.wordpress.org/ 에서 관련 문제가 있는지 검색한다.


필자는 'phpmailer' 라고 검색했다.
[ 검색 결과 바로가기 ]

3. 눈에 띄는 링크를 클릭하고 패치내역을 살펴본다.


링크 :
http://core.trac.wordpress.org/ticket/25014

패치 내역 :
http://core.trac.wordpress.org/attachment/ticket/25014/25014.patch
[caption id="attachment_950" align="aligncenter" width="491"]

phpmailer 변동 사항[/caption]

4. 패치 정보를 확인해 해당 파일을 교체한다.


해당 오픈소스 :
https://github.com/PHPMailer/PHPMailer

업데이트 파일 :
https://raw.github.com/PHPMailer/PHPMailer/master/class.phpmailer.php

교체할 파일 :
~/wp-includes/class.phpmailer.php