如何配置 No Reply 郵箱回覆轉發

CTdream發表於2020-11-30

關於laravel的郵件功能配置這裡不多做贅述。

主要場景前提:用只能發件而不能收件的郵箱進行傳送郵件時,有些客戶可能並不知道該郵箱不能接收(或者說接收不到)郵件,會在收到郵件後直接回覆此郵件,為了避免漏掉一些客戶的回覆資訊,我們可以額外的增加一些郵件配置。

直接回到框架,檢視

\Illuminate\Mail\Mailable::class

原始碼,在該原始碼中我們可以清楚看到:

/**
 * The "reply to" recipients of the message.
 *
 * @var array
 */
public $replyTo = [];

/**
 * Add all of the recipients to the message.
 *
 * @param  \Illuminate\Mail\Message $message
 * @return $this
 */
 protected function buildRecipients($message)
 {
     foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) {
         foreach ($this->{$type} as $recipient) {
             $message->{$type}($recipient['address'], $recipient['name']);
         }
     }

     return $this;
 }

該基類中已經定義好了變數和具體的實現方法。

此時我們只需進行郵件基類繼承重寫實現即可:

class BaseMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->replyTo = [config('mail.reply_to')];
    }

}

\config\mail.php:配置檔案中增加:


    'reply_to' => [
        'address' => env('MAIL_REPLY_TO', 'example@laravel.com'),
        'name' => env('MAIL_FROM_NAME', 'Example'),
    ],

這樣客戶在收到封郵件後,在該封郵件中點選回覆的時候,回覆的郵箱就會變成我們設定的這個 reply_to.address 郵箱,而不是我們的發件郵箱。

–end–

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章