2012年2月17日PHPでも、mail関数やmb_send_mailでメールを送信することは出来ますが、ファイルを添付してのメールやHTMLメールを送信するには、かなり面倒な処理が必要です。私も今まで、メール関係はpearを使って処理していました。ZendFrameworkでは、このような面倒な処理も簡単にできる機能が色々用意されています。今日は、Zend_Mailについて調べてみたいと思います。MailController.phpファイルを作成して、indexActionとメール送信用のsendActionと送信後のメッセージを表示するthanksActionを作成します。indexActionにはとりあえず中身は何も記載しません。同様にthanksActionも中身は何も記載しません。sendActionには、POST送信されたデータを受信するコードを記述します。Zend_Mailをインスタンス化します。引数に文字コードを指定します。『addTo』で送信先のメールアドレスを指定します。『setFrom』は、差出人のメールアドレス、『setSubject』は表題、『setBotyText』は本文を設定します。基本的な設定が終わったら『send』を呼び出せばメールが送信されます。実に簡単にメールが送信できます。下記にMailController.phpのコードを記述しておきます。$this->view->assign('description','ZendFrameworkの為のテストサイトです。『views/scripts』フォルダに新しく『mail』フォルダを作成し、index.phtmlとthanks.phtmlファイルを作成します。ビューファイルに関しては、ほとんど説明はいらないと思いますが、念のために下記にコードを記述しておきます。class="content"><h2>メールが送信されました。それではブラウザで確認してみましょう。メールを送信してみました。それでは、メールにファイルを添付して送信する方法を調べてみましょう。これは、フォームから送信したファイルを添付しそのまま送るような形にしたいので、ファイルのアップロードについても調べる必要があります。ZendFrameworkでファイルのアップロードをする場合は、Zend_Formを使う必要があります。MailController.phpの冒頭にZend_Fromをロードします。Zend_Form_Elementをロードします。フォーム作成のためのメソッドcreateAddFromを作成します。//Zend_Formをインスタンス化します。//フォームの基本情報をセットします。'notEmpty'=>"何か入力して下さい。indexActionに下記のコードを記述します。index.phtmlを下記のように修正します。sendActionを修正します。最初に『getFileInfo』メソッドで送信されたファイルに関する情報を取り出します。『getFileInfo』では、ファイルに関するあらゆる情報が連想配列としてまとめられていますので、file1に関する情報だけを変数に取り出します。ファイルをメールに添付するために『Zend_Mime_Part』インスタンスを作成します。ファイルを添付する場合は一時ファイルとして保管されている$fileInfo['tmp_name']の内容を『file_get_contents』で取り出します。データタイプを設定します。これは、$fileInfo['type']で取り出した値を指定します。dispositionを使ってファイルの添付形式を指定します。Zend_Mimeクラスにある静的メンバークラスを使って指定します。今回は埋め込み式を指定します。encodingを使って、エンコード方式を指定します。Base64を指定します。これもZend_Mimeクラスの静的メンバークラスを使います。filenameでファイル名を指定します。アップロードした元のファイル名$fileInfo['name']を指定します。最後に作成されたZend_Mime_Partインスタンスを、Zend_Mailの『addAttachment』メソッドでメールに追加します。これで、添付ファイル付きのメールが送信できます。sendActionのコードを書きに記述します。それではメール送信をしてみます。受信したメールを確認してみます。ファイル名が送信されていないみたいです。どこか間違いがあるみたいです。後で修正しておきます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト関連記事Zend_Formによるフォームの作成ZendFrameworkでフォームを作成するのにFormヘルパーを使う方法もありますが、それよりももっと便利なフォーム生成機能が『Zend_Form』です。...ZendFrameworkでデータベースにアクセスするZendFrameworkはモデルを作成しなくてもデータベースにアクセスすることが出来ます。今日は、Zend_Dbでレコードの削除について調べてみます。これも更新とほとんど変わらないと思います。以前、Zend_ValidateとZend_Filterについて調べてみました。AFFINGER5.。