コンタクトフォームについて "入力したアドレスに送信メールが来ない。"
こんにちは!ヒロと申します。早速質問があります。
入力したメールアドレスに送信したメールが来ません。参考書をそのまま写したので、どこが間違っているのかわかりません。タグがいっぱいですがよろしくお願い致します。
codeigniterをxampp上に設定しました。
http://localhost/develop2/index.php/form/
ながながすいません。
-------/controllers/form.php/--------
<?php
class Form extends CI_Controller{
function Form()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('session');
$this->output->set_header('Content-Type: text/html; charset=UTF-8');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<div class="">','</div>');
// $fields['name'] = '名前';
// $fields['email'] = 'メールアドレス';
// $fields['comment'] = 'コメント';
// $this->form_validation->set_rules($fields);
// $rules['name'] = "trim|request|max_length[20]";
// $rules['email'] = "trim|request|valid_email";
// $rules['comment'] = "required|max_length[200]";
// $this->form_validation->set_rules($rules);
//$this->output->enable_profiler(TRUE);
$this->form_validation->set_rules('name', 'ユーザ名', 'trim|required|max_length[5]');
$this->form_validation->set_rules('email', 'メールアドレス', 'trim|required');
$this->form_validation->set_rules('comment', 'コメント', 'required|max_length[200]');
$this->form_validation->set_message('required', '%sは、必須項目です');
$this->form_validation->set_message('max_length', '%sは、%s文字以内で入力してください');
$this->form_validation->set_message('valid_email', '正しいメールアドレスを指定してください');
}
function index()
{
$this->ticket = md5(uniqid(mt_rand(), TRUE));
$this->session->set_userdata('ticket', $this->ticket);
$this->form_validation->run();
$this->load->view('form');
}
function confirm()
{
$this->ticket = $this->session->userdata('ticket');
if (! $this->input->post('ticket')
|| $this->input->post('ticket') !== $this->ticket )
{
echo 'クッキーを有効にしてください。クッキーが有効な場合は、不正な操作が行われました。';
exit;
}
if ($this->form_validation->run() == TRUE)
{
$this->load->view('form_confirm');
}
else
{
$this->load->view('form');
}
}
function send()
{
$this->ticket = $this->session->userdata('ticket');
if (! $this->input->post('ticket')
|| $this->input->post('ticket') !== $this->ticket )
{
echo 'クッキーを有効にしてください。クッキーが有効な場合は、不正な操作が行われました。';
exit;
}
if ($this->form_validation->run() == TRUE)
{
$mail['from_name'] = $this->validation->name;
$mail['from'] = $this->validation->email;
$mail['to'] = 'hironori.inoue@yahoo.com';
$mail['subject'] = 'コンタクトフォーム';
$mail['body'] = $this->validation->comment;
if($this->_sendmail($mail))
{
$this->load->view('form_end');
$this->session->sess_destroy();
}
else
{
echo 'メール送信エラー';
}
}
else
{
$this->load->view('form');
}
}
function _sendmail($mail)
{
$this->load->library();
$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', 'UTF-8');
$subject = mb_encode_mimeheader($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;
}
}
}
--------------------------------------------------
--------------views/form_confirm.php--------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="<?=base_url();?>css/form.css" type="text/css" />
<title>コンタクトフォーム</title>
<style type="text/css"></style>
</head>
<body>
<?=$this->load->view('form_header')?>
<div id="main">
<div class="title_banner">
<img src="<?=base_url();?>images/icons/form_titile.jpg" alt="お問い合わせ" width="580" height="70" />
</div>
<div class="outer_frame">
<p class="center">お問い合わせ内容の確認</p>
<table>
<tr><th>名前</th>
<td>
<?php /*echo form_prep('name', set_value('name'));*/ ?>
<?php echo form_prep(set_value('name'));?>
</td>
</tr>
<tr><th>メールアドレス</th>
<td>
<?php /*echo form_prep('name', set_value('email'));*/ ?>
<?php echo form_prep(set_value('email')); ?>
</td>
</tr>
<tr><th>コメント</th>
<td>
<?php /*echo form_prep('name', set_value('comment'));*/ ?>
<?php echo form_prep(set_value('comment')); ?>
</td>
</tr>
<tr><td></td>
<td class="center">
<?=form_open('form');?>
<?=form_hidden('ticket', $this->ticket);?>
<?=form_hidden('name', set_value('name'));?>
<?=form_hidden('email', set_value('email'));?>
<?=form_hidden('comment', set_value('comment'));?>
<input class="button" type="submit" value="修正" />
<?=form_close();?>
<?=form_open('form/send');?>
<?=form_hidden('ticket', $this->ticket);?>
<?=form_hidden('name', set_value('name'));?>
<?=form_hidden('email', set_value('email'));?>
<?=form_hidden('comment', set_value('comment'));?>
<input class="button" type="submit" value="送信" />
<?=form_close();?>
</td>
</tr>
</table>
</div>
</div>
<?=$this->load->view('ci_footer');?>
</body>
</html>
--------------------------------------------------
---------------view/form_end.php------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="<?=base_url();?>css/form.css" type="text/css" />
<style type="text/css"></style>
<title>コンタクトフォーム(送信完了)</title>
</head>
<body>
<!-- header -->
<?=$this->load->view('form_header');?>
<!-- main -->
<div id="main">
<div class="title_banner">
<img src="<?=base_url();?>images/icons/form_title.jpg" alt="お問い合わせ" width="580" height="70" />
</div>
<div class="outer_frame">
<p class="center">送信しました</p>
<p>お問い合わせ、ありがとうございます。</p>
</div>
</div>
<!-- footer -->
<?=$this->load->view('ci_footer');?>
</body>
</html>