ちょっとメール送信の部分で詰まってしまったので。

まずはconfigファイルを弄る

app/config/config.phpでFuelPHPに同梱されているEmailパッケージを読み込むように設定します。

[code lang=php]
'packages' => array(
'email',
),
[/code]

送信する部分のプログラム

[code lang=php]
// メールの送受信
$val = self::mail_form_validate('form'); // validation用の関数を作る
if($val->run()){
$email = Email::forge('default');
$email->from('from_address@example.com'); // 送信元アドレス
$email->to('to_address@example.com'); // 送信先アドレス
$email->subject(mb_convert_encoding('件名','utf-8'));
// 本文
$body = "下記の内容でメールが届きました。n";
$body .= "——————————————————n";
$body .= "お名前:".Input::post('family_name').' '.Input::post('first_name')."n";
$body .= "メールアドレス:".Input::post('mail')."n";
$body .= "内容:n".Input::post('comment')."n";
$body .= "——————————————————n";
$email->body(mb_convert_encoding($body, 'utf-8'));
try { // 送れるかな?
$email->send();
Session::set_flash('error',array('送信しました。'));
}catch (EmailValidationFailedException $e) { //メールアドレスが正しくなかったとき
Session::set_flash('error',array('送信に失敗しました。'));
}catch (EmailSendingFailedException $e) { // 送信ができなかったとき
Session::set_flash('error',array('送信に失敗しました。'));
}
}else{
Session::set_flash('error',$val->error());
}
[/code]

届かない…

このプログラムを書いて、うまくいくはずだったんですが、指定したアドレスに届かない。
MAMPを使ってるからかなーと思ってテストサーバにあげてみても上手く動かない。
とりあえずメールログを見てみました。

[code lang=text]
cat /var/log/maillog
[/code]

すると、”Sender address rejected: Domain not found”との文字が。
単に「送信アドレスのドメインが存在しないぞ、ふざけんな」と言われてるだけでした。

送信ドメインがなかったら送れないのね。知らなかった(´・ω・`)
テストとしてtest@inter-arteq.comみたいなのにするとうまくいきました。