SMTP:在从 Laravel 5.7(Swift 邮件程序)发送电子邮件时更改 Message-ID 域
SMTP: Change Message-ID domain in sending emails from Laravel 5.7 (Swift Mailer)
Laravel 5.7 使用 Swift Mailer 发送电子邮件。
默认情况下,所有已发送的电子邮件都将包含 Message-ID
header 域 swift.generated
(例如 Message-ID: <90b9835f38bb441bea134d3ac815dd6f@swift.generated>
)。
我想将域 swift.generated
更改为例如 my-domain.com
。
如何为所有电子邮件更改此设置?
- 编辑文件 config/mail.php 并在末尾定义您的域:
'domain' => 'yourdomain.com',
- 在命令行中,创建一个新的侦听器:
php artisan make:listener -e 'Illuminate\Mail\Events\MessageSending' MessageSendingListener
- 编辑新创建的侦听器并使其如下所示(不实现 ShouldQueue):
<?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());
}
}
- 在app/Providers/EventServiceProvider中注册监听器:
protected $listen = [
// [...]
\Illuminate\Mail\Events\MessageSending::class => [
\App\Listeners\MessageSendingListener::class,
],
];
就是这样,尽情享受吧! :)
刚刚找到更改消息 ID @swift.generated
的正确方法。
将此代码添加到您的 AppServiceProvider->boot()
方法中:
\Swift_DependencyContainer::getInstance()
->register('mime.idgenerator.idright')
->asValue(config('mail.domain'));
config('mail.domain')
是一个自定义配置条目,因此您可以将其更改为任何您想要的。
在 Laravel 6 中测试过,也许也适用于 5.* 版本。
您还可以在此文件中找到许多有趣的配置:
vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php
Laravel 5.7 使用 Swift Mailer 发送电子邮件。
默认情况下,所有已发送的电子邮件都将包含 Message-ID
header 域 swift.generated
(例如 Message-ID: <90b9835f38bb441bea134d3ac815dd6f@swift.generated>
)。
我想将域 swift.generated
更改为例如 my-domain.com
。
如何为所有电子邮件更改此设置?
- 编辑文件 config/mail.php 并在末尾定义您的域:
'domain' => 'yourdomain.com',
- 在命令行中,创建一个新的侦听器:
php artisan make:listener -e 'Illuminate\Mail\Events\MessageSending' MessageSendingListener
- 编辑新创建的侦听器并使其如下所示(不实现 ShouldQueue):
<?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());
}
}
- 在app/Providers/EventServiceProvider中注册监听器:
protected $listen = [
// [...]
\Illuminate\Mail\Events\MessageSending::class => [
\App\Listeners\MessageSendingListener::class,
],
];
就是这样,尽情享受吧! :)
刚刚找到更改消息 ID @swift.generated
的正确方法。
将此代码添加到您的 AppServiceProvider->boot()
方法中:
\Swift_DependencyContainer::getInstance()
->register('mime.idgenerator.idright')
->asValue(config('mail.domain'));
config('mail.domain')
是一个自定义配置条目,因此您可以将其更改为任何您想要的。
在 Laravel 6 中测试过,也许也适用于 5.* 版本。
您还可以在此文件中找到许多有趣的配置:
vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php