易清风 2017-03-24 11:42:21 2557次浏览 1条回复 0 1 0

为什么会报错,因为国内的邮件服务商要求发送邮件的人和设置的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.jpg

觉得很赞
  • 回复于 2017-03-24 11:52 举报

    你需要mailgun

    2 条回复
    回复于 2017-03-24 12:01 回复

    网上说被QQ屏蔽很厉害

    回复于 2017-03-25 10:41 回复

    mailgun 确实无法发送QQ邮件,基本都是refuse,我也曾经和mailgun客服沟通过,给开过新ip,不过没多久就屏蔽了,现在的做法是非QQ 用mailgun,QQ转到其他渠道,该花的钱还是要花的。

您需要登录后才可以回复。登录 | 立即注册