FuelPHPによるMVCプログラミング入門

電子メールを送信する1

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
FuelPHPを利用すれば、電子メールも簡単に送信することができます。ただし、日本語のメールは文字化けしてしまうことがあるため、設定などを正しく整えてから送信しましょう。
講師:
09:29

字幕

ここでは電子メールを送信するとしましてfuelphp を使った電子メールの送信のやり方を紹介したいと思います。fuelphp を使えば 電子メールも簡単に送ることができるのですが日本語のメールの場合設定などをきちんとしないと文字化けなどを起こしてしまいますのでその辺りもしっかり見ていきたいと思います。尚、今回のスクリプトはMAMP や ZAMP 等の環境では正しくメールが送信できないこともあります。その場合にはインターネットに接続されたレンタルサーバーなどを利用して動作を確認して下さい。それでは、画面の方を見ていきましょう。まずこちら、入力画面があります。名前とメールアドレスと性別を入力すると確認画面に移動するようになります。そして、現在は、この確認画面の「送信する」ボタンを押しても何も起こりません。なので、この続きの画面から作り始めて行きたいと思います。ファイルの方も確認していきます。今回、lesson_05_09 という所にある程度作ったスクリプトが収められています。「app」「classes」「cotroller」の中にはcontact.php ということでcontroller が1つ定義されています。 この中には action_index であったりaction_check というようにアクションが定義されていてこちらがフォームの表示そして、check の方がフォームの確認画面です。それぞれに対応した view がありましてViews の contact フォルダーの中に収められています。check と index というのがありましてこちら、閲覧していきますとまず index の方で、この様にフォームの内容を確認することができます。そして、check の方では、その入力した内容を確認するという画面です。では、このファイルを元に続きの画面から作っていきましょう。まず、ここでやらなければならないのはこの check.php というファイルでフォームの「送信する」ボタンをクリックした時のジャンプ先が現在 check という同じファイルになっています。これを新しくこれから作るアクションとしてthanks というアクションを作りますのでURL としてはcontact/thanks としましょう。そして、この今作った thanks というアクションを定義していきます。今度は controller のファイルcontact.php を編集してこちらに public functionaction_thanks ということでアクションを定義します。 そして、this の template のtitle で「問い合わせ : 完了」とします。更に this の template の content にview の割り当てを行います。では、次に、この thanks のview を作っていきます。view は新しいファイルを作成してページタイプを phpレイアウトはなしでドキュメントタイプはなんでも結構です。内容をすべて削除します。ここでは、この controller かこちら controller_template を継承していてつまり、template を使って構成されています。その template はViews フォルダーの template ファイルに書かれています。なので、こちらに HTML の各タグは書かれているのでこの content の中だけをこちらの今から作る view には記述すれば良いことになります。ここでは非常に簡単にp タグで「お問い合わせありがとうございました」ということで一行メッセージを書くだけにしましょう。では、こちらのファイルを編集していきます。この「fuel」「app」「Views」こちらの「contact」の中にthank.php という名前で保存をしていきます。 ではまずは軽く動きを確認してみましょう。入力画面に行きまして名前とそれからメールアドレスを記入します。そして、こちら確認画面に行って「送信する」ボタンをクリックするとthanks にジャンプするという動きが出来上がりました。では続いてこの thanks という所で電子メールを送信できるようにしていきたいと思います。まず、その前にですけど今こちらの thanks という所には入力されたフォームの内容が混ざってきていません。このスクリプトでは全体を Session を使って値をやり取りしていて入力画面で、こちら、バリデーションのチェックやセキュリティのチェックを行った後set_flash としてSession に記録をしています。そして、確認画面ではその Session を使って値を再現しているんですが実は、ここで使っている get_flashやset_flash というこちらの Session 変数は一画面しか受け渡すことができません。場合によっては、この Sessionというオブジェクトにはもう少し長い間を保持できるset や get というメソッドもあるんですけど安全性等を考慮するとできるだけその保持期限は短い方が安全性が高まります。 そこで、この set_flash や get_flash を使っているんですけどもう一画面、特別にこの Session を保持しておきたいとしましょう。その場合、Session にこちらkeep_flash というメソッドがあります。こちらのメソッドを使うとこの Session が有効な画面で使うことによって、もう一画面Session が保持されるようになります。では、こちらで改めて確認をしてみましょう。入力画面に行きましてもう一度送信していきます。そして、「送信する」ボタンをクリックすると特にエラーメッセージなどがでなければ正しく Session が保持されています。では、こちらを使って、電子メールの内容を書き込んでいきましょう。電子メールを使うためにはまず幾つか設定が必要になります。まずは、こちら config のconfig.php というファイルを編集していきます。まず編集する所としましては文字コード関係の設定です。今 78 行目の language という部分はja となっているかもしれませんがfuelphp をインストールした直後はこの部分は en になっています。基本的に日本語のスクリプトを作る時はここは ja に変更しましょう。 そして、電子メールを送信する時はこちらの locale という設定も重要になります。ここは ja_jp.utf8 という設定になります。これで utf8 を使った日本語のページであるということを宣言することができます。更に、タイムゾーンの設定も行っていきましょう。デフォルトタイムゾーンという設定がutc つまり標準時になっているのでここでは Asia/Tokyo として9時間ずらします。更に更にずっと下まで降りていきましてこちらです。packages という設定があるんですがここに、この様に emailというのを増やします。これは、この後使っていくemail というオブジェクトを使えるようにするために予めロードをしておくパッケージという意味です。これで config の変更が終わりました。しかし、まだ設定が幾つか必要です。続いて、「fuel」「packages」「email」というフォルダーの中の「config」の中にこの様な「email.php」というファイルがあります。これを、こちらは「app」の「config」の中にこの様にコピーをしましょう。これは、email の package のその設定が書かれたファイルなんですけどそのファイルの内容を上書きするために「app」の中にコピーしてきました。 こちらに書いた設定は先程あった packages というフォルダーの中のファイルよりも優先されますのでこちらの設定を書き換えていくと良いでしょう。ここでは、charset をISO-2022-JPとします。そして encode を 7bit にします。これで日本語のメールクライアント、メールソフトに適応した電子メールが送信できるようになりました。では、いよいよ実装を進めていきましょう。

FuelPHPによるMVCプログラミング入門

このコースでは、PHPのフレームワークのひとつであるFuelPHPを紹介していきます。フレームワークとはスクリプト開発における「足場」となるもので、近年のスクリプト開発においては非常に一般的な存在となっています。高速な開発スタイルをぜひとも身に付けていきましょう。

6時間19分 (47 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月12日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。