블로그 프로필 이미지

SMALL




Email 클래스란?


 CI 에서 Email 클래스란 말그대로 이메일을 보낼 수 있도록 이메일에 대한 함수들이 담긴 클래스 이다. 여기서 중요한점은 CI 에서는 정말 간단한 설정과 코딩으로 보낼 수 있다는 점이다. 나같은 경우 처음 CI 를 이용해 이메일 기능을 만들때 복잡할 줄 알았지만, CI 메뉴얼데로 해보니 정말 간편하고 쉽게 기능을 만들 수 있어서 좋았다. 


 우선적으로 CI의 메뉴얼을 보면 이메일 클래스는 아래와 같은 기능들이 제공된다고 나와있다. 아래의 기능은 CI 3.0 을 기준으로 작성되었다. CI 3.0 에서 추가된 부분은 굵은 글씨로 표시해 두었기때문에 CI의 버전별 메뉴얼을 참고하여 보면 도움이 될것이다.


  • Multiple Protocols: Mail, Sendmail, and SMTP (다양한 프로토콜 지원 : Mail, Sendmail, and SMTP)

  • TLS and SSL Encryption for SMTP (SMTP 를 위한 암호화된 TLS 와 SSL 지원) 

  • Multiple recipients (다양한 수신자 지원)

  • CC and BCCs (CC 와 BCC 지원)

  • HTML or Plaintext email (HTML 또는 일반텍스트 이메일 지원)

  • Attachments (파일첨부 지원)

  • Word wrapping (자동 줄바꿈 지원)

  • Priorities (우선순위설정 지원)

  • BCC Batch Mode, enabling large email lists to be broken into small BCC batches. (BBC 배치 모드 지원, 대량의 이메일을 보낼 시 이메일 리스트들을 작은 BCC 배치로 쪼개주는기능 지원)

  • Email Debugging tools (이메일 디버깅 도구 지원)

(CI 3.0 메뉴얼 싸이트 참고)




☞ Email 클래스의 환경설정


 이메일 클래스를 사용하기 위해선 $this->load->library('email') 을 이용하여 이메일 라이브러리를 로드해 주어야한다. 뭐 이런건 CI에서 기본적인 사항이니 긴말은 하지 않겠다. 


 이메일 클래스를 로드하였다면 가장먼저 이메일 클래스에 대한 환경설정을 해주어야한다. 기본적으로 환경설정을 해주지 않아도 CI에서는 기본값이 설정 되어있기때문에 상관없겠지만, SMTP 서버를 이용하여 이메일을 보낸다면, SMTP 서버에 대한 정보가 필요하기 때문에 이메일 클래스에 대한 환경설정을 꼭 해주어야 한다.


 우선적으로 이메일 클래스의 환경설정 방법에는 2가지가 있는데, 첫번째 방법은 아래의 예제와 같이 환경설정 내용을 이메일 초기화 함수의 인수값으로 전달하면 된다. 아래같은 경우 임의로 지정된 값들이기 때문에 자신의 설정에 맞게 값을 넣어주어야 한다.


 $this->email->initialize() 함수로 환경설정 인수값 전달하기


$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_user'] = 'test@gmail.com';
$config['smtp_pass'] = 'test123';
$config['smtp_port'] = '587';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['mailtype'] = 'html'; 
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;

$this->email->initialize($config);


 이메일 환경설정에 대한 두번째 방법은 환경설정파일에 설정값을 저장하는 방법이다. 이방법은 쉽게말해 첫번째 방법처럼 이메일 클래스의 초기화 함수를 사용하여 인수값을 전달해주지 않고, 환경설정 파일에 저장된 설정값을 이용하여 자동으로 환경설정값을 초기화 시키는 방법이다. 환경설정 파일로 설정값을 저장하는 방법은 아래와 같은 설정값을 CI의 기본경로 application/config 디렉토리에 email.php 파일로 저장하면 된다.


 환경설정 파일에 설정값 저장하기 (application/config/email.php)


$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_user'] = 'test@gmail.com';
$config['smtp_pass'] = 'test123';
$config['smtp_port'] = '587';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['mailtype'] = 'html'; 
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;


 위와 같이 환경설정 파일에 설정값을 저장하면 이메일 클래스를 사용할 시 이메일 클래스의 초기화 함수인 $this->email->initialize() 함수를 사용할 필요가 없다.


 이메일 클래스에 대한 환경설정 항목에는 위에 나온 설정값보다 더많은 설정항목들이 제공되는데, 이 설정 항목들은 CI의 버전 마다 다를 수 있으니 CI 버전별 메뉴얼을 참고하는게 좋다. 아래에 나온 이메일 클래스 환경설정 항목들은 CI 2.X 기준으로 CI 3.0 에서 추가된 항목들만 몇가지 적어보았다.


 CI 3.0 에서 추가된 이메일 환경설정 항목


 항목

 기본값

 옵션

 설명

 smtp_keepalive

 FALSE

TRUE OR FALSE (boolean) 

SMTP의 연결 유지  

 smtp_crypto

 기본값 없음 (No Default)

 tls OR ssl

 SMTP 암호화

 dsn

FALSE 

TRUE OR FALSE (boolean) 

서버로부터 통보 메시지를 활성화


 위의 항목의 위에서 말했다시피 CI 3.0 에서 추가된 항목들이다. 일반적으로 위의값들은 설정값으로 지정해 주지 않아도 될듯하다. 물론 필요에 따라서 설정해 주어도 좋지만 기능에 대한 이해가 부족할 시 기본값으로 두는게 좋다. 


 이메일 클래스에서 함수들의 사용방법은 메뉴얼에 더 자세히 나와있기때문에, 따로 이곳에 작성하지는 않겠다. 마지막으로 아래는 이메일 클래스에서 함수들의 사용방법이 나와있는 CI 메뉴얼 싸이트이다.


 CI 이메일 클래스 메뉴얼 싸이트


 CI 2.1.0 한글 메뉴얼 싸이트

 CI 3.0 메뉴얼 싸이트

 

LIST