0

こんにちは、お問い合わせフォームのユーザーに送信されるメールに画像を添付する方法を見つけようとしています。今のところ、実際の画像ではなく、文字通り画像のファイル名を電子メールに添付するだけです。

サイト コントローラー:

パブリック関数 actionContact() {

    $model=new ContactForm;
    if(isset($_POST['ContactForm']))
    {   
        $model->attributes=$_POST['ContactForm'];
        if($model->validate())
        {
            $model->image=CUploadedFile::getInstance($model,'image');
            $model->image->saveAs('/tmp/emailScap');

            $headers="From: {$model->email}\r\nReply-To: {$model->email}";
            mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$model->image,$headers);
            Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
            $this->refresh();
        }
    }
    $this->render('contact',array('model'=>$model));
}

モデル:

クラス ContactForm は CFormModel を拡張します

{

public $name;
public $email;
public $subject;
public $body;
public $image;
public $verifyCode;

/**
 * Declares the validation rules.
 */
public function rules()
{
    return array(
        // name, email, subject and body are required
        array('name, email, subject, body', 'required', 'message'=>'{attribute} 不可以為空。'),
        // email has to be a valid email address
        array('email', 'email', 'message'=>'請填寫正確的{attribute}。'),
        // verifyCode needs to be entered correctly
        array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements(), 'message'=>'認證碼不可以為空。'),
        // Image
        array('image', 'file', 'allowEmpty'=>true, 'safe'=>true, 'types'=>'jpg, jpeg, gif, png'),
    );
}
4

0 に答える 0