Laravel 邮件在添加密件抄送时会发送两次电子邮件

Posted

技术标签:

【中文标题】Laravel 邮件在添加密件抄送时会发送两次电子邮件【英文标题】:Laravel mail is sending email twice when added bcc 【发布时间】:2018-06-17 11:41:46 【问题描述】:

我正在尝试使用 Bcc 发送电子邮件,但我注意到 SwiftMailer 发送了两次电子邮件(一次使用 Bcc,另一次没有 Bcc),我删除了密件抄送它工作正常,没有重复的邮件。

ma​​ilController.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

更新

此问题仅在本地环境中发生,但在生产环境中运行完美,没有任何重复的电子邮件。

【问题讨论】:

Check this article @user2486 不幸的是它没有帮助 您提供的那段代码没有帮助。除此之外,我认为 mailController 不应该扩展 Mailable。 根据 Laravel 文档,任何邮件控制器都在扩展 Mailable 类,还有什么其他信息我应该添加到我的问题中? @wahdan 您是否为您的config/mail.php 设置了Universal To 【参考方案1】:

如果您密件抄送一封电子邮件并通过 mailtrap.io 发送,您将在邮箱中收到两份电子邮件副本。如果有两个密件抄送,您将收到三份副本等。电子邮件看起来相同(包括“收件人:”)。

此行为特定于 mailtrap.io,而不是 Laravel(即它不在发送端)。

如果重复邮件的数量与密件抄送的数量加上原始邮件的数量相同,我想你可以确信这是原因。

此答案假定您在本地使用 mailtrap.io 作为您的 SMTP 服务器,而不是在生产中。

【讨论】:

是的,我之前注意到了,但我忘了添加我的答案,谢谢 当您在 Mailtrap 中打开“原始”版本时,您可以看到作为“密件抄送”发送的副本。 @SCruz 我收到超过 1 个副本? mailhog 对我来说也是如此。 对我来说同样适用于 aws ses。但是,当我在本地尝试时,它工作正常,但是当我在 ubuntu ec2 服务器中尝试时,它发送了两次

以上是关于Laravel 邮件在添加密件抄送时会发送两次电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Mandrill 发送密件抄送电子邮件(通过 Laravel)

使用 PHP 向使用 Gmail API 发送的电子邮件添加密件抄送

PHP 电子邮件发送密件抄送

Laravel邮件密送

在 django 中向密件抄送和抄送发送电子邮件

通过密件抄送发送邮件时 MailCore 中的错误