Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将yii2自定义表单字段响应发送到电子邮件_Php_Yii2 - Fatal编程技术网

Php 如何将yii2自定义表单字段响应发送到电子邮件

Php 如何将yii2自定义表单字段响应发送到电子邮件,php,yii2,Php,Yii2,我在默认的基本Yii2模板中创建了一个额外的字段来收集网站地址。我一直试图通过电子邮件和其他回复一起发送回复 下面的代码控制此功能: public function contact($email) { if ($this->validate()) { Yii::$app->mailer->compose() ->setTo($email) ->setFrom([$this->email =

我在默认的基本Yii2模板中创建了一个额外的字段来收集网站地址。我一直试图通过电子邮件和其他回复一起发送回复

下面的代码控制此功能:

public function contact($email)
{
    if ($this->validate()) {
        Yii::$app->mailer->compose()
            ->setTo($email)
            ->setFrom([$this->email => $this->name])
            ->setSubject('Message from Website Contact Form')
            ->setTextBody($this->website)
            ->setTextBody($this->details)               
            ->send();

        return true;
    }
    return false;
}
我添加了
->setTextBody($this->website)
,但它没有在电子邮件中显示该网站。我不知道
->setTextBody
是否是正确的代码。 这是下面提供的内容:

消息ID: 日期:2019年3月23日星期六15:47:22+0100 主题:来自网站的信息联系表 发件人:倪怡 致:admin@example.com MIME版本:1.0 内容类型:文本/纯文本;字符集=utf-8 内容传输编码:引用可打印

asmbdvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv= bbbbbbbbbbbb


你知道我该怎么解决这个问题吗。我想使用
->setTextBody($this->website=>$this->details)
会起作用,但即使这样,我希望它们在不同的行/段落中分开,请注意,您要调用
setTextBody
两次,这没有意义。 第一次调用设置的值将被第二次调用覆盖。 因此,您在消息中看到的只是
$this->details
的内容,您没有看到
$this->website
的内容也就不足为奇了

像这样设置文本正文
setTextBody($this->website=>this->details)
也不起作用。首先,因为这是一个错误的php语法。即使您像这样修复它,
setTextBody([$this->website=>$this->details])
,它也会失败,因为
setTextBody
只需要纯文本作为输入


如果您希望
$this->website
$this->details
都包含在单独的行中,请尝试这样做:
setTextBody(“$this->website\r\n\r\n$this->details”)
注意,您要调用
setTextBody
两次,这没有意义。 第一次调用设置的值将被第二次调用覆盖。 因此,您在消息中看到的只是
$this->details
的内容,您没有看到
$this->website
的内容也就不足为奇了

像这样设置文本正文
setTextBody($this->website=>this->details)
也不起作用。首先,因为这是一个错误的php语法。即使您像这样修复它,
setTextBody([$this->website=>$this->details])
,它也会失败,因为
setTextBody
只需要纯文本作为输入

如果您希望
$this->website
$this->details
都包含在单独的行中,请尝试这样做:
setTextBody(“$this->website\r\n\r\n$this->details”)