如何在管理员收到的电子邮件中获取联系我们表单的电子邮件字段(yii2)

如何在管理员收到的电子邮件中获取联系我们表单的电子邮件字段(yii2),yii2,contactus,Yii2,Contactus,我正在使用yii2高级联系我们表格。但无法获取在联系人表单的电子邮件字段中填写的用户的电子邮件 public function sendEmail($email) { return Yii::$app->mailer->compose() ->setTo($email) ->setFrom([$this->email => $this->

我正在使用yii2高级联系我们表格。但无法获取在联系人表单的电子邮件字段中填写的用户的电子邮件

    public function sendEmail($email)
        {    
            return Yii::$app->mailer->compose()
                ->setTo($email)
                ->setFrom([$this->email => $this->name])  
//echo "emailll<pre>";print_r($this->email);exit;  
//here I am getting the correct email which is filled in contact form
//but when I received mail. nowhere I got That email id...
// In from: username@exmple.com which i set as username
// In To : admin@example.com which i set as admin email id           
                ->setSubject($this->subject)
                ->setTextBody($this->body)
                ->send();
        }
公共功能发送电子邮件($email)
{    
返回Yii::$app->mailer->compose()
->setTo(电子邮件)
->setFrom([$this->email=>$this->name])
//回显“emailll”;打印($this->email);退出;
//在这里,我得到了正确的电子邮件中填写的联系方式
//但是当我收到邮件的时候,我哪里也没有收到那封邮件的id。。。
//在发件人中:username@exmple.com我将其设置为用户名
//关于:admin@example.com我将其设置为管理员电子邮件id
->setSubject($this->subject)
->setTextBody($this->body)
->send();
}
如何得到那封电子邮件

这里是view/contact.php

[
'components' => [
    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'localhost',
            'username' => 'username',
            'password' => 'password',
            'port' => '587',
            'encryption' => 'tls',
        ],
    ],
    // ...
],
],

****

要使用Mailer,应在应用程序配置中对其进行如下配置:

 public function sendEmail($email)
    {    
        return Yii::$app->mailer->compose()
            ->setTo($email)
            ->setFrom([$this->email => $this->name])         
            ->setSubject($this->subject)
            ->setTextBody($this->body . ' Email from: ' . $this->email)
            ->send();
    }

我想你可以这样理解:


谢谢你的建议,但我的配置文件中有这段代码,仍然没有获得邮件id。你的问题是什么还不太清楚。如果您无法获得$email agrument,您应该在此处发布联系人表单的查看代码以及执行sendEmail方法的方法。我已通过添加其中的查看代码更新了问题..不,如果您希望获取邮件文本中的属性,我们无法这样做。但如果我在setfrom..->setfrom中获得该属性,这将是有意义的([$this->email=>$this->name])…..$this->email应该是从中填写contact us的访问者的电子邮件id…。如果我没有从中获取邮件实际发送的电子邮件id,但希望从contact form获得电子邮件id,则可以这样做。$this->email是用户填写的contactForm模型的属性。查看contactForm模型以及属性如何设置(我认为是加载函数)。
 public function sendEmail($email)
    {    
        return Yii::$app->mailer->compose()
            ->setTo($email)
            ->setFrom([$this->email => $this->name])         
            ->setSubject($this->subject)
            ->setTextBody($this->body . ' Email from: ' . $this->email)
            ->send();
    }