세상의 모든 일을 아주 제대로. 멋지게. 해결하기 위해 연구합니다.

워드프레스 이메일 발송처리

워드프레스에서는 이메일을 어떻게 발송할까요?

 
워드프레스는 이메일 발송 시스템이 잘 갖춰져 있습니다. 게다가 각종 뉴스레터 플러그인을 포함, 이메일과 관련된 플로그인들도 많이 나와 있기에 사실 워드프레스를 사용할 때 이메일 발송에 대해 사용자가 신경을 쓸 일은 거의 없다고 봐도 무방합니다.
하지만, 종종 이메일 연결로 문제가 생기곤 합니다.

  • 일부 웹호스팅 환경에서는 이메일이 제대로 발송되지 않습니다.
  • 발송된 이메일이 자꾸 스팸함으로 전달됩니다.
  • 워드프레스가 발송하는 이메일의 디폴트(기본)값을 변경하고 싶습니다. 예를 들어 발신자명…등등

이런 경우 발송 시스템에 대해 알아두면 문제를 해결하는데 많은 도움이 됩니다.
 

1. PHP에서 이메일 처리

이메일 발송은 이메일 방송관련 프로토콜(네트웍 구조의 표준화된 규칙)에 따라 처리되며 워스프레스라 해서 딱히 다르지 않습니다. 또한 워드레스는 PHP기반이기 때문에 결국 PHP의 이메일 발송 기능을 이용합니다. PHP는 이메일 발송을 위해서 mail()이라는 함수를 기본으로 제공하고 있습니다.
 <?php
$to             =  ‘nobody@example.com’ ;
$subject    =  ‘the subject’ ;
$message  = ‘hello’ ;
$headers = ‘From: webmaster@example.com’ . “\r\n” .
           ‘Reply-To : webmaster@example.com’ . “\r\n” .
           ‘X-Mailer : PHP/’ . phpversion () ;
 
mail($to, $subject, $message, $headers) ;
 
 
phpmailer에 대한 이미지 검색결과

2. PHPMailer

PHPMailer는 PHP에서 가장 인기있는 이메일 발송 라이브러리입니다. 이메일 발송과 관련된 거의 모든 기능을 제공하는 장점이 있습니다.
PHPMailer
mail()뿐만 아니라 Sendmail이나 STMP 같은 다양한 방식의 메일 전송을 지원합니다.
워드프레스가 내부적으로 이PHPMailer를 사용하여 이메일 발송을 처리합니다.
 

3. wp_mail()

워드프레스에서는 wp_mail()이라는 함수를 제공합니다. 이 함수는 워드프레스에서 모든 이메일 발송 처리를 담당하는 함수이고, 사용법은 다음과 같습니다.
 
<?php
$to             =  ‘sentto@example.com’ ;
$subject    =  ‘the subject’ ;
$body  = ‘The email body content’ ;
$headers = array (‘Content-Type :  text/ html;
charset=UTF-8′ ) ;
 
wp_mail($to,  $subject,  $body, $headers) ;
 
wp_mail() 함수는 내부적으로 PHPMailer를 사용하고, PHPMailer는 PHPmail() 방식을 사용합니다. 즉, 워드프레스는  PHPMailer를 사용하여 PHPmail() 함수를 호출합니다.
 

4. 이메일발송 테스트하기

워드프레스의 발송 방식을 알아보았고,  내 워드프레스 사이트에서 이메일 발송이 제대로 되는지 알아보도록 합시다.
가장 간단한 방법은 워드프레스를 설치하고서 자동으로 발송되는 알리(alert)메일이 아닐까요? 워드프레스 사이트를 새로 설치하면 알림 메일이 관리자 메일 계정으로 발송됩니다. 이 메일이 정상적으로 도착했다면 워드프레스의 이메일 발송이 정상적으로 처리되고 있다는 뜻입니다.
이미 사이트를 설치한 상태라 테스트 하기가 힘들다면 새 사용자를 한명 추가 후 확인해 볼수 있습니다. 워드프레스는 새 사용자가 추가될때마다 자동으로 관리자에게 ” 새로운 사용자”를 알리는 알림 메일을 발송하기 때문이죠.
 

5. SMTP로 이메일 전송하기( 웹호스팅사와의 문제)

워드프레스에서 이메일 발송이 문제가 되는 경우, 가장 흔한 원인은 대부분 워드프레스 사이트를 호스팅하는 웹호스팅사의 PHP 메일 설정이나 보안 정책과 관련된 문제일 경우가 많습니다. 이럴경우, 워드프레스에서 이메일 전송 방식을 SMTP로 변경하여 외부 SMTP서버를 통해 이메일 전송 처리를 하게 수정을 하면 됩니다.
wp_mail()함수를 표준 PHP mail이 아닌 SMTP로 처리하게 하려면 다음과 같이 wp_mail()함수에서 제공하는 phpmailer_init 액션(atcion)을 후킹하면 됩니다.
 <?php
add_action ( ‘phpmailer_ini’ ,  ‘my_phpmailer_example’ ) ;
function my_phpmailer_example ( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = ‘smtp/example.com’ ;
$phpmailer->SMTPAuth = ture; // Force it to use Username and PAssword to authenticate
$phpmailer->Port = 25;
$phpmailer->Username = ‘yoursuername’ ;
$phpmailer->Password = ‘yourpassword’ ;
            // Additional settings…
//$phpmailer->SMTPSecure = “tls” ; // Choose SSL or TLS< if necessary for your server
//$phpmailer->From = ” you@yourdomail.com”;
//$phpmailer->FromName = ” Your Name”;
}
 

6. 코딩이 어려울땐 워드프레스 SMTP 플러그인으로 간편하게 !

직접 코딩을 하기에는 어려움이 있기에 플로그인을 간단하게 사용하는 방법도 있습니다.