使用 Laravel 发送邮件时,在电子邮件主题前缀前面



如果我像这样向Laravel发送电子邮件:

Mail::send('folder.view', $data, function($msg)
{
    $msg->to('dest@email.com');
    $msg->subject('email subject');
}); 

我想扩展 Laravel 的核心类 Illuminate\Mail\Message.php要设置默认主题前缀,如下所示:

[Projectname] email subject

如何扩展核心类以避免被作曲家更新覆盖?

子类Message并将代码放入不同的命名空间和文件中:

<?php
namespace mynamespace;
class MyMessage extends IlluminateMailMessage
{
    // ...
}

随意接受克里斯的回答,因为他是正确的,我只是在扩展他说的话。Illuminate\Mail\Message 有一个subject()方法,它是设置主题的方法。它看起来像这样:

/**
 * Set the subject of the message.
 *
 * @param  string  $subject
 * @return IlluminateMailMessage
 */
public function subject($subject)
{
    $this->swift->setSubject($subject);
    return $this;
}

如果你像克里斯在他的回答中所说的那样扩展它,你可以像这样扩展它:

public function subject($subject)
{
    $this->swift->setSubject('[' . Config::get('app.project_name') . '] ' . $subject);
    return $this;
}

假设您设置了app.project_name配置指令。

相关内容

最新更新