▼ 以下の記事のメール送信部分に汎用性を持たせる為に、作成しました。ブラウザからは、FORM で直接呼び出してもいいですが、jQuery で .serialize() から .post() を使用する方法もあります。 @BBS(アットビービーエス) のサービスが終了するので、管理人宛のメールサービスをほぼ同じ画面デザインで作成しました。( ご自由にお使い下さい ) UTF-8 前提です
<?php mb_language( "ja" ); mb_internal_encoding("utf-8"); $mail = new mail_data(); $_GET['from_address'] = "このPHPが置かれるサーバで使用できるメールアドレス"; $_GET['from_text'] ="日本語差出人"; $_GET['to_address'] ="送り先のメールアドレス"; $_GET['to_text'] ="日本語受取人"; $_GET['subject'] ="件名"; $_GET['body'] ="本文1\n本文2\n"; $_GET['another'] ="その他"; $mail->send_mail_set($_GET); print "<pre>"; print_r($mail); print "</pre>"; $mail->send_mail(); // *********************************************** // メール処理用クラス // *********************************************** class mail_data { public $from_address; public $from_text; public $to_address; public $to_text; public $subject; public $body; // *********************************************** // 連想配列のキー部分がプロパティと一致したらセット // *********************************************** public function send_mail_set( $data ) { foreach( $data as $k => $v ) { if ( property_exists( $this, $k ) ) { $this->{$k} = $v; } } } // *********************************************** // サーバー(メールサーバ)送信処理 // *********************************************** public function send_mail() { $from = mb_convert_encoding( $this->from_text, "JIS", "utf-8" ); $from = "From: =?ISO-2022-JP?B?" . base64_encode($from) . "?= <{$this->from_address}>"; $to = mb_convert_encoding( $this->to_text, "JIS", "utf-8" ); $to = "To: =?ISO-2022-JP?B?" . base64_encode($to) . "?= <{$this->to_address}>"; mb_send_mail($to, $this->subject, $this->body, $from ); } } ?>
$_GET を使っているのは、テスト段階なのが理由です。実装では $_POST が望ましいです。