1

我使用 Laravel 5.3

我的控制器是这样的:

auth()->user()->notify(new ConfirmOrder($invoice));

我的通知是这样的:

<?php
...
class ConfirmOrder extends Notification implements ShouldQueue, ShouldBroadcast
{
    use Queueable;
    private $data;
    public function __construct($data)
    {
        $this->data = $data;
    }
    public function via($notifiable)
    {
        return ['mail'];
    }
    public function toMail($notifiable)
    {
        $mail_myshop = explode(',', config('app.mail_myshop'));
        return (new ConfirmOrderMail($this->data, $notifiable))
            ->to($notifiable->routeNotificationFor('mail'))
            ->bcc($mail_myshop)
            ->subject('Thanks');
    }
}

我的邮件是这样的:

<?php
...
class ConfirmOrderMail extends Mailable
{
    use Queueable, SerializesModels;
    public $data;
    public $user;
    public function __construct($data, $user)
    {
        $this->data = $data;
        $this->user = $user;
    }
    public function build()
    {
        return $this->view('vendor.notifications.mail.email-confirm-order',['data'=>$this->data, 'name' => $this->user->name]);
    }
}

我结合了通知和可邮寄,因为 laravel 5.3 不支持密件抄送

它有效,但有一个缺点。电子邮件发件人没有密件抄送。例如,有 3 封密件抄送的电子邮件。它应该出现在发件人的电子邮件中(如果我单击gmail上的已发送邮件并单击详细信息,是否存在电子邮件密件抄送。但没有电子邮件密件抄送)

我在 env 中设置我的发件人电子邮件,如下所示:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=****@gmail.com
MAIL_PASSWORD=****
MAIL_ENCRYPTION=tls

如何在发件人电子邮件(已发送邮件)上显示密件抄送?

更新

我将添加我的问题的详细信息

如果我像这样通过 gmail 发送邮件

在此处输入图像描述

然后我检查来自电子邮件发件人的 gmail 上的已发送邮件菜单,结果如下:

在此处输入图像描述

看起来像密送电子邮件

如果我使用上面的代码从 Laravel 发送邮件,结果:

我检查来自电子邮件发件人的已发送邮件菜单,结果如下:

在此处输入图像描述

似乎没有电子邮件密件抄送

我想要的是:我想在 laravel 上的发件人电子邮件上显示密件抄送电子邮件

我该怎么做?

4

1 回答 1

2

这是不可能的。

Laravel 使用SwiftMailer处理 SMTP 邮件。当您发送一封包含密件抄送字段中地址列表的电子邮件时,SwiftMailer 实际上会分解该列表并向每个地址发送一封单独​​的电子邮件。

BCC: test1@gmail.com, test2@gmail.com, test3@gmail.com因此, SwiftMailer 不会发送一封带有 header 的电子邮件,而是分别发送三封带有 header BCC: test1@gmail.comBCC: test2@gmail.com和的电子邮件BCC: test3@gmail.com

由于您在 Gmail 中收到的电子邮件的BCC标题中没有地址列表,因此无法显示该列表。

现在,我说这是不可能的,但从技术上讲,如果你愿意,你可以分叉 SwiftMailer 存储库,更新代码以不将密件抄送收件人分成单独的电子邮件,然后弄清楚如何让 Laravel 使用你定制的 SwiftMailer 版本,但我非常怀疑这是否值得。

于 2017-10-21T05:45:03.737 回答