无法在Laravel中发送邮件

3

我有一个表单,其中我将“收件人”,“发件人”,“主题”和“消息”作为输入。提交后,它会向指定客户(“收件人”)发送电子邮件。

我创建了一个“可邮寄的”对象,并在控制器中执行以下操作:

Mail::to($request['to'])->send(new SendMail($request['from'], $request['subject'], $request['message']));

这是我的可发送邮件的_constructor构造函数

public function __construct($from, $sub, $msg)
{
        $this->from = $from;
        $this->sub = $sub;
        $this->msg = $msg;
}

这里是构建方法

 public function build()
 {
          return $this->from($address = $this->from, $name='Company Support')
                      ->subject($this->sub)
                      ->view('emails.sendmail');
 } 

我的日志文件里出现了如下错误:

字符串不支持[]运算符 {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): [] operator not supported for strings at C:\xampp\htdocs\shopvel_\vendor\laravel\framework\src\Illuminate\Mail\Mailable.php:582) ....

我无法找出问题所在。我已经尝试了许多解决方案,但都没有奏效。例如,在build方法中删除from后,会显示以下内容:

local.ERROR: Illegal string offset 'address' {"exception":"[object] (ErrorException(code: 0): Illegal string offset 'address' at C:\xampp\htdocs\shopvel_\vendor\laravel\framework\src\Illuminate\Mail\Mailable.php:318)

编辑 1: 这是我的电子邮件视图:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Mail</title>
</head>

<body>
    {{ $msg }}
</body>

</html> 

编辑2: 当我在构造函数方法中传递两个变量时,它能够正常工作。例如:

Mail::to($request['to'])->send(new SendMail($request['from'], $request()->all()));

构造函数方法中传递变量是否有限制?

(我认为没有限制,因为构造函数可以接受任意数量的变量)


在您的代码的第一行中,request 方法是一个集合(collection),而不是一个数组(array),所以您可以像这样使用它:$request->from 而不是 $request['from'] - Joseph
已经尝试过了,但是没有起作用。 - Ishaan
你能否编辑你的帖子并添加你的邮件视图?! - Joseph
你使用 LaravelCollective 生成表单吗?! - Joseph
让我们在聊天中继续这个讨论 - Joseph
显示剩余5条评论
1个回答

5

构造函数中的$from参数与Mailable类中的$from公共属性冲突并覆盖了它。

public function __construct($from, $sub, $msg)

将其更改为类似于以下内容...

public function __construct($fromAddress, $sub, $msg)

它将正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接