2017-03-14 17 views
1

laravel 5.2ではこれはうまくいきましたが、5.3に移行して以来、私の電子メールでカテゴリを取得することに問題があります。laravel 5.3 sendgridカテゴリ

public function build() 
    { 
     return $this->view('mail.enquiry') 
      ->getSwiftMessage()->getHeaders()->addTextHeader('X-SMTPAPI', json_encode(array("category" => array(env('BUSINESS_NAME'))))) 
      ->subject('Website Enquiry') 
      ->to(env('MAIL_DEFAULT_TO_EMAIL'), env('MAIL_DEFAULT_TO_NAME')) 
      ->from(env('MAIL_DEFAULT_FROM_EMAIL'), env('MAIL_DEFAULT_FROM_NAME')) 
      ->replyTo(\Request::get('email'), \Request::get('full_name')); 
    } 

私はこのコードではすべてのものが正常に動作しますが、できるだけ早く私は、この行を追加すると壊れるこのエラーに

BadMethodCallException in Mailable.php line 525: 
Method [getSwiftMessage] does not exist on mailable. 

を得る:

->getSwiftMessage()->getHeaders()->addTextHeader('X-SMTPAPI', json_encode(array("category" => array(env('BUSINESS_NAME'))))) 

答えて

2

あなたは後にしているものを達成するにはwithSwiftMessage()メソッドを使用できます。

このメソッドは、SwiftMessageのインスタンスを渡されるコールバックを取ります

->withSwiftMessage(function ($message) { 
    $message->getHeaders()->addTextHeader('X-SMTPAPI', json_encode(array("category" => array(env('BUSINESS_NAME'))))); 
}) 

だからあなたの方法のようなものになります。

public function build() 
{ 
    return $this->view('mail.enquiry') 
     ->withSwiftMessage(function ($message) { 
      $message->getHeaders()->addTextHeader('X-SMTPAPI', json_encode(array("category" => array(env('BUSINESS_NAME'))))); 
     }) 
     ->subject('Website Enquiry') 
     ->to(env('MAIL_DEFAULT_TO_EMAIL'), env('MAIL_DEFAULT_TO_NAME')) 
     ->from(env('MAIL_DEFAULT_FROM_EMAIL'), env('MAIL_DEFAULT_FROM_NAME')) 
     ->replyTo(\Request::get('email'), \Request::get('full_name')); 
} 

ホープ、このことができます!

+0

それは私のために働いた。ありがとう –