Laravel邮件在添加密送时发送两次邮件

7

我正在尝试使用Bcc发送电子邮件,但是我注意到SwiftMailer会发送两次邮件(一次带有Bcc,另一次没有),当我去掉Bcc时,它可以正常工作而不会重复发送邮件。

mailController.php

class mailController extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */      
    public function __construct()
    {
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {   
        return $this->from('test@gmail.com', 'test')
        ->view('portal.confirmation')
        ->subject('test Email')
        ->bcc('email@gmail.com','wahdan');
    }
}

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525

更新

这个问题只发生在本地环境中,但在生产环境中,它完美地工作,没有出现任何重复的邮件。


请查看此文章:https://swiftmailer.symfony.com/docs/messages.html#setting-bcc-recipients - Niklesh Raut
@user2486 很遗憾,它没有帮助到您。 - wahdan
您提供的代码并没有起到帮助作用。除此之外,我认为mailController不应该扩展Mailable。 - Chrysovalantis Koutsoumpos
根据Laravel文档,任何邮件控制器都是扩展自Mailable类的,那么我应该在我的问题中添加哪些其他信息呢? - wahdan
@yrv16 是的,我也注意到了一些奇怪的事情,这个问题只在本地环境中发生,但在生产环境中完美地工作,没有重复的电子邮件。 - wahdan
显示剩余2条评论
1个回答

14
如果你在mailtrap.io上使用BCC发送一封电子邮件,你的邮箱将会收到两封邮件副本。如果有两个BCC,则会收到三份副本,以此类推。这些电子邮件看起来完全相同(包括“收件人”)。
这种行为是特定于mailtrap.io而不是Laravel的(即它不是在发送方)。
如果重复的电子邮件数量与BCC加原始邮件的数量相同,我认为你可以相信这是原因。
本答案假设您在本地使用mailtrap.io作为SMTP服务器,但在生产环境中没有这样做。

是的,我之前注意到了但忘了添加我的回答,谢谢。 - wahdan
当您在Mailtrap中打开“原始”版本时,可以看到哪个副本作为“bcc”发送。 - Amade
@SCruz 我收到超过1份的副本了吗? - Thiraj Priyadharshana
1
同样也为我设置MailHog。 - mikoop
同样对于 AWS SES,对我也是一样的。然而,当我在本地尝试时,它可以正常工作,但是当我在 Ubuntu EC2 服务器上尝试时,它会发送两次。 - Furkan ozturk

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