メール送信をmodelとして分離しました。

Filename: models/mail_model.php

<?php

class Mail_model extends CI_Model {
        public function sendmail($mail) {
                $this->load->library('email');
                $config['protocol'] = 'mail';
                $config['charset'] = 'ISO-2022-JP';
                $config['wordwrap'] = FALSE;
                $this->email->initialize($config);
                $from_name = $mail['from_name'];
                $from      = $mail['from'];
                $to        = $mail['to'];
                $subject   = $mail['subject'];
                $body      = $mail['body'];
                $from_name = mb_encode_mimeheader($from_name, 'ISO-2022-JP','Q');
                $subject   = mb_convert_encoding($subject, 'ISO-2022-JP', 'UTF-8');
                $body = mb_convert_encoding($body, 'ISO-2022-JP', 'UTF-8');
                $this->email->from($from,$from_name);
                $this->email->to($to);
                $this->email->subject($subject);
                $this->email->message($body);
                if( $this->email->send() ) {
                        return TRUE;
                } else {
                        return FALSE;
                }
        }
}

Filename: controller/sendmail.phpを変更

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Sendmail extends CI_Controller {

        public function _set_validation() {
                $vconfig = array(
                        array(
                                'field' => 'name',
                                'label' => 'お名前',
                                'rules' => 'trim|required|max_length[20]|xss_clean'
                        ),
                        array(
                                'field' => 'mail',
                                'label' => 'メール',
                                'rules' => 'trim|required|valid_email'
                        ),
                        array(
                                'field' => 'subject',
                                'label' => '題名',
                                'rules' => 'trim|required|max_length[40]|xss_clean'
                        ),
                        array(
                                'field' => 'body',
                                'label' => 'お取り合わせ',
                                'rules' => 'trim|required|xss_clean'
                        ),
                );
                $this->form_validation->set_rules($vconfig);
                $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
        }

        public function index() {
                $data['title']='メールフォーム';
                $data['description']='メールフォームです。';
                $this->load->view('mailform',$data);
        }

        public function confirm() {
                self::_set_validation();
                if ($this->form_validation->run() == FALSE)
                {
                        self::index();
                }
                else
                {
                        $sdata['mail'] = array(
                                'name' => $this->input->post('name'),
                                'mail' => $this->input->post('mail'),
                                'subject' => $this->input->post('subject'),
                                'body' =>  $this->input->post('body')
                        );
                        $this->session->set_userdata($sdata);
                        $data['title']='メール確認';
                        $data['name'] = htmlentities(
                                $this->input->post('name'),ENT_COMPAT,"UTF-8"
                                );
                        $data['mail'] = $this->input->post('mail');
                        $data['subject'] = htmlentities(
                                $this->input->post('subject'),ENT_COMPAT,"UTF-8"
                                );
                        $data['body'] = nl2br(htmlentities(
                                $this->input->post('body'),ENT_COMPAT,"UTF-8"
                                ));
                        $this->load->view('confirm',$data);
                }
        }

        public function send() {
                $data['title']='お問い合わせ完了';
                if(self::_send()) {
                        $data['messages'] = 'お問い合わせを承りました。';
                } else {
                        $data['messages'] = '申し訳ございません。<br />電話にて 連絡をお願いいたします。';
                }
                $this->load->view('send',$data);
        }

        public function _send() {
                $sdata = $this->session->userdata('mail');
                if(empty($sdata['name'])) return FALSE;
                $this->session->unset_userdata('mail');

                $mail = array(
                        'from_name' => '自動送信',
                        'from' => 'yamanoi@tsukuba-g.ac.jp',
                        'to' => 'yamanoi@tsukuba-g.ac.jp',
                        'subject' => '問い合わせメール',
                        'body' => <<<EOLN
お名前:{$sdata['name']}
メールアドレス:{$sdata['mail']}
題名:{$sdata['subject']}
内容:
{$sdata['body']}
EOLN
                );

                $this->load->model('mail_model');
                return $this->mail_model->sendmail($mail);
        }
}