这是我的控制器行动。
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地址。
感谢。
答案 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