Laravel Custom Message-ID Swift Mailer

30 Januari 2020 • 1 menit untuk membaca artikel ini

Laravel membawa swift mailer untuk fitur kirim email. Satu hal yang ngeselin dari Swift Mailer itu bagian message-ID, dia akan generate message-ID: <random@swift.generated>. Imbasnya ketika melewati rspamd dia akan kena symbol MID_RHS_NOT_FQDN, memang tidak serta merta di flag sebagai spam, tapi cukup kesel aja pas lihat log. Haha. Solusinya, custom message-ID swift mailer, bagian domainnya yg di custom supaya jadi fqdn. Jadi hasil akhirnya akan berupa message-ID: random@domain.com.

Pertama, edit file config/mail.php tambahin:

'domain' => 'sumarsono.com',

Kedua, bikin listener baru pakai artisan:

php artisan make:listener -e 'Illuminate\Mail\Events\MessageSending' MessageSendingListener

Ketiga, edit listener yang tadi dibuat menjadi seperti berikut ini:

<?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());
    }
}

Keempat, daftarkan listener ke app/Providers/EventServiceProvider:

        protected $listen = [

           // [...]

            \Illuminate\Mail\Events\MessageSending::class => [
                 \App\Listeners\MessageSendingListener::class,
            ],
         ];

Selesai, coba kirim email maka message-ID sudah berubah menjadi Message-ID: <8f19abc09142878031510fd7cce7dece@sumarsono.com> dan rspamd udah gak komplain lagi.

Cool~

Techphplaravel

Sumarsono

System Administrator
Kembali ke atas

Kirim File dari Terminal ke Telegram>>

<<Log GNU Screen