【问题标题】:Sending Laravel Mailable without subject发送没有主题的 Laravel Mailable
【发布时间】:2020-02-06 02:05:09
【问题描述】:

我遇到了一个奇怪的问题,我必须从我的 Laravel 应用程序中发送一个没有主题的邮件。

目前,这是我邮件中的build()

public function build()
{
    return $this->from('example@example.com')
    ->view('emails.shipments.remitShipmentFileImages')
    ->subject(null)
    ->attach(storage_path($this->file));
}

但我也试过:

public function build()
{
    return $this->from('example@example.com')
    ->view('emails.shipments.remitShipmentFileImages')
    ->subject('')
    ->attach(storage_path($this->file));
}

但是当我收到电子邮件测试时,我的主题行中出现了“处理汇款文件”。我做错了什么?

【问题讨论】:

  • 字符串Process Remit Files 是否在您的remitShipmentFileImages.blade.php 文件中?我想知道它是否从中获取一个值并将其解析到subject 行。你能简单地使用->subject("No subject")吗?
  • @TimLewis - 不幸的是不是来自那个文件,它完全是空白的,暂时更像是一个占位符文件。有可能?我自己也不完全确定,这是一个奇怪的要求,但这就是他们所说的:“......而且完全空白(电子邮件中没有主题或文字......”所以我试图这样做的原因强制通过空白或空值。
  • 嗯,很有趣。除了这些建议之外,我对Mailable 类逻辑并不十分熟悉(我倾向于只使用简单的Mail::send() 调用)。是的,这绝对是一个奇怪的要求。

标签: laravel email laravel-5


【解决方案1】:

如果没有设置主题,则最终使用类名:

protected function buildSubject($message)
{
    if ($this->subject) {
        $message->subject($this->subject);
    } else {
        $message->subject(Str::title(Str::snake(class_basename($this), ' ')));
    }

    return $this;
}

您可以尝试覆盖 buildSubject 方法以删除空白主题的后备:

protected function buildSubject($message)
{
    $message->subject($this->subject);

    return $this;
}

只要 swift 允许空白主题,我想应该没问题。

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多