Yii联系表格不发送电子邮件

时间:2014-04-28 21:59:37

标签: forms yii contact

这是我的控制器行动。

public function actionContact()
    {
        $model=new ContactForm;
        if(isset($_POST['ContactForm']))
        {   
            $model->attributes=$_POST['ContactForm'];
            if($model->validate())
                {
                $headers="From: {$model->email}\r\nReply-To: {$model->email}";
                mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers)`enter code here`;
                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));
}

验证数据并显示成功消息。但是电子邮件没有发送到我的adminEmail地址。

感谢。

2 个答案:

答案 0 :(得分:2)

如果它正在验证并显示Flash消息,那么它与邮件服务器有关,与yii无关。我建议你查看邮件服务器,看它是否正常运行。

答案 1 :(得分:2)

如果您在本地主机中进行操作,则必须配置您的邮件服务器。您可以使用smtp从localhost发送邮件。如果它在邮件服务器中,则无需配置。在yout config / main.php中,您可以这样做对于localhost

 'mail' => array(
          'class' => 'application.extensions.yii-mail.YiiMail',
          'transportType' => 'php',
           'transportOptions'=>array(
           'host'=>'yourhostname',
           'port'=>'your port no'
            ),
          'viewPath' => 'application.views.mail',
          'logging' => true,
          'dryRun' => false
        ),

注意:我正在使用YiiMail Extension