yii2 联系我们发送邮件报错 [ 技术分享 ]
为什么会报错,因为国内的邮件服务商要求发送邮件的人和设置的smtp服务器账号要相同,因为联系我们的是用户,也就是发件人是用户,而不是我们配置的邮箱,所有出错。
这里我用了个取巧的办法,发件人改为自己,客户的邮箱信息直接拼接在邮件内容,这样我们收到邮件就能知道谁留下的信息。这样有个好处,自己发邮件给自己,成功概率100%
把控制器改为这样写:
复制代码 public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->body = "访客".$model->email."留言:".$model->body;
$model->email = Yii::$app->params['adminEmail'];
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', '感谢联系我们,我们会尽快联系您!');
} else {
Yii::$app->session->setFlash('error', '邮件发送错误!');
}
return $this->refresh();
} else {
return $this->render('contact', [
'model' => $model,
]);
}
}
复制代码 效果截图:
共 1 条回复
易清风 厦门
注册时间:2016-11-24
最后登录:2021-05-31
在线时长:23小时34分
最后登录:2021-05-31
在线时长:23小时34分
- 粉丝1
- 金钱320
- 威望20
- 积分750