본문 바로가기

IT/Web

[Wordpress] 3.x 이상 버전부터 메일 전송이 안되는 현상 해결법



 

 

  

Wordpress를 처음 시작하는 분들을 위한 글입니다.

뭐가 먼지 잘 모르는 상태에서 에러가 나면 정신이 하나도 없어지는데요.

2.x 버전까지 잘 되던 메일 전송(회원가입 또는 Admin 알림) 이 안되는 현상이 나옵니다.

 

지금부터 해결방법에 대해서 알려드리겠습니다.

 

1. 우선 WP-Mail-SMTP 라는 플러그인을 설치합니다.

 - Reconfigures the wp_mail() function to use SMTP instead of mail() and creates an options page to manage the settings.

라는 설명이 있는데요. php문인 mail() 대신에 SMTP라는 것을 사용하는 wp_mail()을 사용하게 해주는 것이라고 하네요.

 

2. 설치가 끝났으면 활성화를 해줍니다.

 

3. Admin 설정 페이지 왼쪽 사이드 메뉴 맨 아래쪽에 있는 설정(setting)에 들어갑니다.

 

4. 'Email' 을 클릭하게 되면 Advanced Email Options 페이지가 나오게 됩니다.

 

 - From Email : 보내는 사람의 메일주소를 적습니다.

 - From Name : 보내는 사람의 이름을 적습니다.

 - Mailer : 'Send all WordPress emails via SMTP.' 를 선택합니다.

 - Return Path : 선택하지 않습니다.

 

 - SMTP Host : smtp.gmail.com  이라고 적어줍니다. google 에서 서비스 하는 gmtp 서버를 이용하겠다는 의미입니다.

 - SMTP Port : 465  라고 적습니다. smtp 서버의 포트번호겠죠?ㅋㅋ

 - Encryption : 'Use SSL encryption' 을 선택합니다. 

 - Authentication : 'Yes: Use SMTP authentication' 를 선택합니다. 여기서 알수 있겠네요. SMTP는 메일을 인증해주는 서비스입니다.

 

 - Username : 자기 계정을 적어줍니다. ( ex) abc@gmail.com ) 이렇게 Full Email address 를 적어줍니다.

 - Password : 자기 계정의 비밀번호를 적어줍니다.

 

여기까지 설정이 끝났으면 변경 사항  저장 을 눌러서 저장을 합니다.

 

5. 아래 테스트 해볼 수 있습니다.

 - To : 옆에 메일 전송 테스트를 위해 받는 사람의 메일주소를 적어줍니다.

 

 

** 여기에서 보통 에러가 발생합니다.

 

다음과 같은 에러 메시지가 나왔을 때 해결법

 

Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?


라는 메시지가 보이게 됩니다.
 이것은 SSL (Secure Sockets Layer) 라는 데이터를 안전하게 주고받기 위한 표준 프로토콜을 설정을 안해줘었다는 문구입니다.
서버에서 설정이 안되어 있는 것입니다.
 그렇다면 서버 호스팅을 받아서 Wordpress를 올린 경우에는 호스팅 회사에 전화를 해서 "PHP에 ssl 설정 좀 해주세요" 라고 하면 간단하게 해결이 된다.
 그렇지 않고 직접 서버관리를 한다면, 서버 설정을 만져주어야 한다.

1) Wordpress는 Apache 웹 가상서버가 시스템 요구사항이기 때문에 Apache 설정폴더인 conf 폴더로 들어간다.
2) php.ini 파일을 찾는다.
3) extension=php_openssl.dll  이라고 입력하여 준다. (왠만하면 모냥을 위해 extension ~~ 어쩌고 있는 뭉태기에 넣어준다.)

 이렇게 서버설정이 끝난 후에 다시한번 메일 전송 테스트를 해준다.

 

  Test Message Sent

  The result was:

  bool(true)

  The full debugging output is shown below:

 

라는 메시지를 볼 수 있을 것이다. 

그럼 성공!