SMTP:更改从Laravel 5.7(Swift Mailer)发送电子邮件时的邮件ID域

SMTP:更改从Laravel 5.7(Swift Mailer)发送电子邮件时的邮件ID域,laravel,laravel-5,smtp,swiftmailer,email-headers,Laravel,Laravel 5,Smtp,Swiftmailer,Email Headers,Laravel 5.7使用Swift Mailer发送电子邮件 默认情况下,所有发送的电子邮件都会有消息ID标题,标题中包含域swift.generated(例如消息ID:) 我想将域swift.generated更改为例如my domain.com 如何更改所有电子邮件的此项 编辑文件config/mail.php,并在末尾定义域: 在命令行中,创建一个新的侦听器: 编辑新创建的侦听器并使其如下所示(不要实现ShouldQueue): 就这样,享受吧!:) 刚刚找到了一个正确的方法来更改消息I

Laravel 5.7使用Swift Mailer发送电子邮件

默认情况下,所有发送的电子邮件都会有
消息ID
标题,标题中包含域
swift.generated
(例如
消息ID:

我想将域
swift.generated
更改为例如
my domain.com

如何更改所有电子邮件的此项

  • 编辑文件config/mail.php,并在末尾定义域:
  • 在命令行中,创建一个新的侦听器:
  • 编辑新创建的侦听器并使其如下所示(不要实现ShouldQueue):

  • 就这样,享受吧!:)

    刚刚找到了一个正确的方法来更改消息ID中的
    @swift.generated

    将此代码添加到您的
    AppServiceProvider->boot()
    方法:

    \Swift_DependencyContainer::getInstance()
            ->register('mime.idgenerator.idright')
            ->asValue(config('mail.domain'));
    
    config('mail.domain')
    是一个自定义配置条目,因此您可以将其更改为任何您想要的内容

    在Laravel6中测试,可能也可以使用5.*版本

    您还可以在此文件中找到许多有趣的配置:
    vendor/swiftmailer/swiftmailer/lib/dependency\u maps/mime\u deps.php

    太棒了!作品完美,谢谢!这应该已经包含在像这样的Laravel中。也许在拉威尔6.0版中:它当然包含在Laravel7.0中,只需要做第一步,其余的都已经完成了
        php artisan make:listener -e 'Illuminate\Mail\Events\MessageSending' MessageSendingListener
    
        <?php
        /**
         * Set the domain part in the message-id generated by Swift Mailer
         */
    
        namespace App\Listeners;
    
        use Illuminate\Mail\Events\MessageSending;
        use Swift_Mime_IdGenerator;
    
        class MessageSendingListener
        {
            /**
             * Create the event listener.
             *
             * @return void
             */
            public function __construct()
            {
                //
            }
    
            /**
             * Handle the event.
             *
             * @param  MessageSending  $event
             * @return void
             */
            public function handle(MessageSending $event)
            {
                $event->message->setId((new Swift_Mime_IdGenerator(config('mail.domain')))->generateId());
            }
        }
    
            protected $listen = [
    
               // [...]
    
                \Illuminate\Mail\Events\MessageSending::class => [
                     \App\Listeners\MessageSendingListener::class,
                ],
             ];
    
    \Swift_DependencyContainer::getInstance()
            ->register('mime.idgenerator.idright')
            ->asValue(config('mail.domain'));