CodeIgniter3

16. [CodeIgniter3] 이메일 보내는 방법

drizzle0925 2022. 1. 4. 12:28
728x90

코드 이그나이터에서 이메일 보내는 방법에 대해서 알아보도록 하겠습니다.

 

코드 이그나이터는 프로그램에서 이메일을 보내기 위한 이메일 라이브러리를 제공합니다.

메일을 전송하기 위해서는 메일에 필요한 설정을 하고 라이브러리를 로드해야 합니다.

코드 이그나이터는 여러 프로토콜, 메일, 메일 보내기 SMTP, 여러 수신자, 참조 및 숨은 참조, HTML 또는 일반 텍스트 이메일, 첨부 파일 단어 줄 바꿈 등을 지원합니다.

 

이메일 전송 기능은 웹 애플리케이션에서 아주 중요합니다.

사용자가 가입할 때 이메일 주소를 확인하고 사용자가 구독을 확인할 수 있도록 이메일을 전송합니다.

또한 이메일을 통해 잊어버린 비밀번호를 재설정하게 하거나 고객에서 청구서 및 영수증을 보내는 등의 작업을 수행합니다.

 

코드 이그나이터 SMTP 이메일 구성

config 폴더 안에 stmp 구성 파일인 email.php 파일을 생성합니다.

application/config/email.php 파일을 만들고 아래 코드를 입력합니다.

<?php 
$config = array(
    'protocol' => 'stmp',
    'stmp_host' => 'stmp.example.com',
    'stmp_port' => 465,
    'stmp_user' => 'phptpoint@example.com',
    'stmp_pass' => '123456',
    'stmp_crypto' => 'ssl',
    'mailtype' => 'text',
    'stmp_timeout' => '4',
    'charset' => 'iso-8859-1',
    'wordwrap' => TRUE
);
?>

참고 : 더미 매개변수로는 이메일을 보낼 수 없습니다.

 

Controller

application/controllers/EmailController.php 파일을 만들고 아래 코드를 입력합니다.

<?php 
class EmailController extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        // autoload에서 호출중이므로 주석처리
        // $this->load->helper('url');
    }

    public function index()
    {
        $this->load->view('email');
    }

    public function send()
    {
        // config폴더에있는 email.php 파일 호출
        $this->load->config('email');
        // email 라이브러리 호출
        $this->load->library('email');

        $from = $this->config->item('stmp_user');
        $to = $this->input->post('to');
        $subject = $this->input->post('subject');
        $message = $this->input->post('message');

        $this->email->set_newline("\r\n");
        $this->email->from($from);
        $this->email->to($to);
        $this->email->subject($subject);
        $this->email->message($message);

        if($this->email->send())
        {
            echo 'Email has been sent successfully';
        }
        else
        {
            show_error($this->email->print_debugger());
        }
    }
}
?>

 

 

View

application/views/email.php 파일을 만들고 아래 코드를 입력합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CodeIgniter Email send using SMTP</title>
</head>
<body>
    <div>
        <h3>Use the form below to send email</h3>
        <form method="post">
            <input type="email" name="to" placeholder="Enter Receiver Email" />
            <br /><br />
            <input type="text" name="subject" placeholder="Enter Subject" />
            <br /><br />
            <textarea name="message" row="6" placeholder="Enter your message here"></textarea>
            <br /><br />
            <input type="submit" value="Send Email" />
        </form>
    </div>
</body>
</html>

 

Github : https://github.com/jun0925/study/commit/6a21263ec146eed6d12453bd049e3321d227420f

728x90